2010-10-24 19 views

Respuesta

5

No, no es posible. Un archivo web.config debe colocarse 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.

8

Me parece que es posible, puede intentar lo siguiente:

Puede copiar el archivo de web.config a la carpeta raíz de su solución. A continuación, cree la carpeta de la solución (que no pertenece a ninguno de sus proyectos) y agregue su archivo allí (a través del elemento del menú emergente Add Existing Item). Eliminar configuraciones web de sus sitios web. Después de eso, puede 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 en Add As Link. Después de eso, tendrás enlaces a tus archivos de configuración web en lugar de a los reales en tu solución.

alt text

Por otro lado no estoy seguro de si el intercambio de los archivos web.config entre los diferentes proyectos es una buena idea, porque por lo general web.config tiene alguna condifuration específica para cada aplicación por separado.

+0

Intenté hacer esto, pero recibí una advertencia de que los archivos no serían controlados por el origen porque estaban fuera de la raíz del proyecto vinculante. Sin embargo, parecen estar controlados por la fuente, y los cambios/comprobaciones parecen estar funcionando ... no estoy seguro si ese problema me morderá en algún momento del camino. –

0

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. Se define en el machine.config como

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

Si desea utilizar el control de sesión, por ejemplo, y desea depurar y solicitar los connectionStrings entonces éste será incluido también.

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.

Cuestiones relacionadas