En el caso de las cadenas de conexión, es posible apuntar a un archivo compartido. Si el archivo compartido está en una red UNC, requiere privilegios administrativos en la máquina donde se alojará la aplicación.
Solución: en su web.config, use configSource para apuntar a un archivo de configuración local. Debido a las restricciones de .Net, esto debe estar en o por debajo del nivel del archivo de configuración raíz. Solo apunto a un archivo en la carpeta de la aplicación:
<connectionStrings configSource="ConnectionStrings.config" />
En una ubicación compartida a la que pueda acceder el usuario del grupo de aplicaciones, agregue el archivo de configuración que contiene las cadenas de conexión compartidas. Este archivo no debe contener ningún XML que no sea la propia sección connectionStrings. El archivo compartido, ConnectionStrings.config, se ve así:
<connectionStrings>
<clear/>
<add name="connString1" connectionString="connString1 info goes here"/>
<add name="connString2" connectionString="connString2 info goes here"/>
</connectionStrings>
Ahora el truco. Cree un enlace simbólico de Windows en la carpeta de su aplicación que apunte al archivo de configuración compartido externo. Necesitará privilegios de administrador para hacer esto:
mklink ConnectionStrings.config \\someServer\someShare\someFolder\ConnectionStrings.config
Acabamos de burlarnos de .Net. El sistema de configuración utilizará la configuración configSource para buscar cadenas de conexión en un archivo local llamado ConnectionStrings.config. El enlace simbólico parece un archivo a .Net, y el enlace simbólico se resuelve en el archivo de configuración compartido.
Advertencias: los cambios en el archivo compartido no activan automáticamente un reinicio de la aplicación en .Net. En el caso de IIS, el sitio web o el grupo de aplicaciones deberá reiniciarse manualmente.
Debido a la necesidad de privilegios administrativos para crear el enlace simbólico, es posible que este enfoque no funcione para todos. Hay dos alternativas relacionadas que pueden funcionar si el archivo compartido está en la misma unidad lógica: enlaces físicos y uniones. Consulte esta discusión y esta discusión para obtener más información.