¿Qué sucede cuando edito web.config?

79

Necesito editar el archivo web.config en un entorno Sharepoint en vivo, pero no estoy seguro de qué sucederá si lo hago (quiero generar errores personalizados).

¿Esto hará que el proceso de trabajo de IIS6 se recicle?

¿Los usuarios activos perderán su estado de sesión debido a esto?

¿O puedo editar el archivo de forma segura?

willem
fuente
Puede definir sesiones para que se coloquen en una máquina remota, por lo que el restablecimiento de la aplicación no provocará la pérdida de la sesión
Kamarey

Respuestas:

78

El grupo de aplicaciones se reiniciará y se perderá el estado de la sesión. Imagine que cada aplicación ASP.NET (como se define en IIS) es un programa en el escritorio. Guardar web.config hará algo similar a cerrar el programa y volver a abrirlo.

Dan Goldstein
fuente
10
No estoy seguro acerca de IIS6, pero en IIS7 e IIS8 este es el comportamiento predeterminado , aunque puede cambiarlo a través de Grupos de aplicaciones> Opciones avanzadas> Reciclaje> Deshabilitar el reciclaje para cambios de configuración = verdadero, lo cual es útil para entornos de producción, por ejemplo, para que el Los administradores pueden realizar cambios que no deben entrar en vigor hasta el próximo reciclaje. Con Sharepoint específicamente, hay una forma de programar los cambios para que se apliquen en un momento específico, creo.
nada es necesario
3
@nothingisne needed Pero, ¿la configuración en Application Pools > Advanced Options > Recycling > Disable recycling sí misma provoca el reciclaje de un grupo de aplicaciones? ¿Tortugas hasta el final?
D'Arcy Rittich
1
Hola @DanGoldstein. Mencionas " algo similar " a cerrar el programa y volver a abrirlo. ¿Qué pasa con el estado estático? ¿Se garantiza que el estado estático se borre mediante una edición web.config? La razón es que guardo en caché algunas cosas de web.config en variables estáticas.
Dirk Boer
Honestamente, ya no soy una buena fuente de información sobre esto. Cuando respondí, estaba usando IIS y ASP.Net a tiempo completo. Soy solo un desarrollador de software aficionado en estos días.
Dan Goldstein
@DirkBoer La única razón por la que estoy aquí es para encontrar la respuesta definitiva a tu pregunta. En mi experiencia, la edición de web.config no afecta las propiedades estáticas.
Alex Dresko
9

Además, si el estado de la sesión está configurado como fuera de proceso (base de datos o servicio), el reciclaje del grupo de aplicaciones no perderá ningún estado de sesión. Esto es tan cierto para Sharepoint como para ASP.Net básico.

muelles7
fuente
2

Cuando edite web.config, reiniciará AppDomain (NO AppPool) de esa aplicación web y borrará todos los recursos y la memoria ocupados. Por lo tanto, otras aplicaciones web que se ejecutan en ese grupo de aplicaciones no se verán afectadas. También borrará las sesiones (en proceso) y la memoria caché.

Jay Shah
fuente
1

Como ya han mencionado algunas personas: el grupo de aplicaciones del sitio en IIS se reiniciará (esto suele tardar un par de segundos). Como resultado, las solicitudes de la siguiente página serán más lentas (ya que ya no se almacenará en caché). También se perderá el estado de sesión de los usuarios; PERO en el estado de sesión WSS no se usa de forma predeterminada, en MOSS lo usa InfoPath Form Services. Por lo tanto, podría ser que no tenga grandes problemas relacionados con la pérdida del estado de la sesión.

Por otro lado; para superar esos problemas: lo que se suele hacer es crear una solución de SharePoint (WSP) que implemente e inicie un trabajo de temporizador para realizar los cambios en web.config desde el código (utilizando la clase SPWebConfigModification del modelo de objetos). Lo bueno es que puede programar la ejecución del cambio, para que sus usuarios no lo noten.

Jan Tielens
fuente