2012-09-21 48 views
9

¿Cuál es la diferencia entre web.config y machine.config?Diferencia entre web.config y machine.config?

He leído que: -

Los archivos web.config especifican los valores de configuración para una aplicación web en particular , y se encuentran en el directorio raíz de la aplicación; el archivo machine.config especifica la configuración de todos los sitios web en el servidor web, y se encuentra en $ WINDOWSDIR $ \ Microsoft.Net \ Framework \ Version \ Config.

¿Hay algo que me falta o algún otro aspecto técnico? Quiero saber más sobre ambos archivos.

Respuesta

13

Cada versión CLR tiene un archivo machine.config, junto con un archivo adicional web.config, al que me refiero como el "archivo web.config a nivel de máquina".

Además, como usted nota, cada aplicación web también tiene un archivo web.config. Los directorios dentro de una aplicación web también pueden tener archivos web.config.

Ahora, el punto clave es que los archivos de configuración heredan el uno del otro. Es decir, una aplicación web leerá la configuración definida en el archivo machine.config y el archivo a nivel de máquina web.config (para su versión de marco dada) y su propio archivo web.config.

Un caso de uso común para definir cosas en el machine.config sería compartir valores entre muchas aplicaciones en el servidor, como una cadena de conexión tal vez, o la configuración del servidor SMTP, cosas por el estilo.

+2

Excelente respuesta, pero tengo una pequeña solución: no es "Cada .NET Framework" sino cada versión de CLR. (e.x. .net fx 3.0 viene sin su propio CLR, por lo tanto, no hay machine.config nuevo para ese .net fw) – Tamir

4

Esos son algunos de los detalles más importantes; aunque en realidad, machine.config va más allá de la simple configuración de ASP.NET. Hay otro archivo que debe examinar, que (creo) se encuentra en la misma ubicación que machine.config; esa es la 'raíz' web.config, que va entre machine.config y los archivos web.config específicos del sitio, y es, por supuesto, ASP.NET específico.

Algunas de las configuraciones que cambia en el nivel del servidor en la consola de administración de IIS se realizan en la raíz web.config.

Tenga en cuenta que esta jerarquía es por versión de .NET; (2.0 tiene uno; 4.0 tiene su propio)

Otra nota: Puede tener archivos sub web.config en directorios y/o sub-aplicaciones fuera de la raíz de un sitio que modifiquen aún más la 'base'.

Por último, una advertencia: No todos los ajustes pueden anularse en los archivos web.config de subniveles. Es posible (y algunos son, por defecto) bloquear ciertas configuraciones en cualquier nivel de la jerarquía que se describe aquí.

2

El machine.config es el último archivo de configuración maestra en su sistema con una gran cantidad de configuraciones predeterminadas. Cuando utiliza archivos web.config, que se realizan en un orden en cascada, en realidad está sobrescribiendo estos ajustes con otros nuevos.

3

Permítanme aclararlo: - en ASP.NET, hay una jerarquía de archivos de configuración y el archivo machine.config se encuentra en la máquina de significado raíz .El archivo de configuración contiene la configuración que se aplica en cada aplicación web que usted creó. Existe en Windows/Microsoft .NET/Framework/[versión]/config Encontrará un archivo web.config en la misma ruta física (le doy el nombre A). Este archivo web.config hereda la configuración de machine.config . ahora tiene la carpeta de la aplicación en la que tiene web.config (en el nivel raíz). Este web.config (lo nombro B) hereda la configuración de A. Si tiene web.config en los subdirectorios de la carpeta de la aplicación que el subdirectorio web.config hereda la configuración de B y así es como la escalera se cae