¿Podría decirme qué sucede exactamente cuando editamos Web.config (en tiempo de ejecución) en un servidor IIS?


11

¿Podría decirme qué sucede exactamente cuando editamos Web.config (en tiempo de ejecución) en un servidor IIS.

¿La aplicación que depende de web.config se reinicia automáticamente? En caso afirmativo, ¿es posible cancelar el reinicio automático (o la recarga de web.config)?


Puede intentar activar la auditoría de acceso a archivos para ver si IIS lee o no el archivo web.config después de modificarlo.
Eric H

Respuestas:


10

El dominio de aplicación ASP.NET se reinicia cada vez que 'toca' web.config. Es posible desactivar la Notificación de cambio de archivo (FCN) para una carpeta, pero generalmente no es la mejor opción si puede evitarlo. Si lo desactiva, solo significa que necesita reciclar manualmente el grupo de aplicaciones para que los cambios surtan efecto.

Antes de IIS7, solo los cambios en ASP.NET causarían el reciclaje de AppDomain, pero con IIS7 y muchas de las configuraciones que viven en web.config, este es un problema más común. es decir, cambiar un documento predeterminado en IIS 7 Manager hará que AppDomain se recicle ahora.

Idealmente, solo necesita mantener su tasa de cambio baja, o a veces aplicar el cambio a applicationHost.config (que no causa el reciclaje de AppDomain) en lugar de web.config.


4

La aplicación que usa web.config se reiniciará cuando la cambie, hay más información aquí:

http://msdn.microsoft.com/en-us/library/ms178473.aspx

No conozco ninguna forma de evitar que esto suceda (y no estoy seguro de por qué querría hacerlo; tal vez pueda proporcionar más detalles de lo que está tratando de lograr).



3

[SOLO UNA NOTA]

Sé que este es viejo, pero aún merece ser mencionado.

Scott Forsyth: la respuesta del MVP es incorrecta.

El dominio de aplicación ASP.NET se reinicia cada vez que 'toca' web.config.

Esto está mal.


La respuesta rápida es la respuesta más completa y técnicamente correcta, ya que incluye un enlace al MSDN que incluye un detalle importante:

Cuando se requiere un reinicio de la aplicación, ASP.NET atenderá todas las solicitudes pendientes del dominio de la aplicación existente y los ensamblados anteriores antes de reiniciar el dominio de la aplicación y cargar los nuevos ensamblados.

Esto es particularmente importante cuando hablamos de servicios web. Esto indica que puede estar bien hacer un reinicio de medio día de forma segura.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.