Pregunta ¿Es posible compartir web.config en varios proyectos en una solución? (ASP.NET)


Tengo una solución compuesta por una aplicación web y múltiples proyectos, ¿es posible compartir la configuración en la aplicación web en toda la solución?

Gracias


5
2017-10-24 08:44


origen


Respuestas:


Parece que es posible, puedes intentar lo siguiente:

Puedes copiar tu web.config archivo a la carpeta raíz de su solución. Luego cree la carpeta de soluciones (que no pertenece a ninguno de sus proyectos) y agregue su archivo allí (a través de Add Existing Item elemento del menú emergente). Eliminar configuraciones web de sus sitios web. Después de eso puedes seleccionar Add Existing Item desde el menú emergente en sus dos proyectos web, seleccione su archivo web.config desde la raíz de la solución y haga clic Add As Link. Después de eso, tendrá enlaces a sus archivos de configuración web en lugar de los reales en su solución.

alt text

Por otro lado, no estoy seguro de si compartir los archivos web.config entre diferentes proyectos es una buena idea, ya que generalmente web.config tiene una condifuración específica para cada aplicación por separado.


8
2017-10-24 08:58



No, no es posible. Es necesario colocar un archivo web.config en la carpeta raíz de cada sitio web. Puede tener un archivo web.config común copiado en la raíz de cada sitio como un paso de compilación del proyecto para que en el tiempo de ejecución ASP.NET pueda encontrarlo.


5
2017-10-24 08:45



Los archivos Web.config contienen anulaciones en cascada de una configuración de archivo web.config más alta. Por lo tanto, si coloca un web.config en la raíz de IIS o ajusta la configuración en machine.config o en el estándar web.config del .NET framework (C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG para ejemplo).

El mejor ejemplo es probablemente el uso de la cadena de conexión LocalSqlServer. Está definido en machine.config as

<connectionStrings>
    <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;  
    Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;
    User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>

Si usa el control de inicio de sesión, por ejemplo, depura y solicita las conexiones, entonces este también se incluirá.

Por lo tanto, si necesita algunas configuraciones comunes para varias aplicaciones, colóquelas en un archivo web.config que sea lo suficientemente alto en la jerarquía, en última instancia en machine.config.


0
2017-10-24 09:08