2008-11-19 44 views
63

He estado buscando información sobre esto sin éxito. El contexto de por qué necesito esto es another question I asked here. Más específicamente, ¿la creación/actualización/eliminación de archivos en App_Data causa un reciclaje de grupo?¿Qué causa el reciclado de un grupo de aplicaciones en IIS?

Si alguien pudiera proporcionar una lista detallada de las causas de un reciclaje, sería genial.

ACTUALIZACIÓN: Como ya han notado dos usuarios, también me complacería recibir una respuesta que especifique los motivos para reciclar el AppDomain únicamente y no toda la agrupación.

+0

seguro de que es el grupo y no solo el dominio de la aplicación? – stephbu

+0

La publicación de blog de Well Tess sobre reinicios de AppDomain es bastante canónica: trabaja para el equipo de ASP.NET. – stephbu

Respuesta

29

Dos efectos diferentes: el proceso de AppPool es el host para aplicaciones potencialmente múltiples. Típicamente, esto puede reciclarse mediante una serie de efectos, p. tiempo - cada 'n' horas, falta de solicitudes, uso de memoria, etc. Configurado en el Administrador de configuración de IIS.

AppDomain: la instancia alojada de la raíz de la aplicación se puede pasar más frecuentemente sin afectar a otros AppDomains en la AppPool. después de Tess en el dominio de aplicación de reciclaje es bastante perspicaz

http://blogs.msdn.com/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx

Estás escribiendo en una carpeta supervisada para la recompilación - esto desencadenará la recreación dominio de aplicación en algún momento.

El registro de eventos lo ayudará a determinar la causa iniciada del reciclado.

2

Esto puede ocurrir a diario según las preferencias, o cuando se ha excedido la memoria virtual máxima para el proceso.

+0

Entiendo estas causas. Prefiero preguntar acerca de qué aplicación (no relacionada con IIS) cambió causaría un reciclaje. – Slavo

+0

"cambiado" para que se lea como "cambios" – Slavo

+0

Ahh, ok. El cambio de la carpeta app_data no debería reciclar, pero podría considerar escribir en un registro cuando ocurra la aplicación de inicio de sesión para que pueda saber con certeza. –

36

El artículo que te gustó en la otra publicación realmente hizo un muy buen trabajo al respecto.

inmediata de reciclaje

  • Web.config cambia
  • Machine.config cambia
  • Global.asax cambia
  • directorio
  • Bin cambia
  • App_Code cambia

retardada de reciclaje

Puede ocurrir con varios cambios en otras ubicaciones, por lo general, solo lo he notado con cambios en los archivos .aspx o .cs/.vb. Agregar texto temporal, csv u otros archivos no ha resultado en problemas para mí.

NOTA: Estos son todos los reciclados en el dominio de la aplicación y no los reciclados reales del grupo. Normalmente, la aplicación POOL solo reciclará en función de la configuración en IIS (número de solicitudes, límite de memoria, tiempo de inactividad o reinicio programado).

+1

Gracias, Mitchel. Pero no dice nada sobre App_Data en particular. Mientras que aquí está, dice todas las carpetas de la aplicación: http://weblogs.asp.net/owscott/archive/2006/02/21/ASP.NET-v2.0-_2D00_-AppDomain-recycles_2C00_-more-common- thanhanbefore. aspx # 440333 – Slavo

+0

¿Cuál creo? Estas son exactamente las incoherencias, por lo que no pude encontrar una sola respuesta. – Slavo

+0

Slavo, esto es cierto, sin embargo, sería cauteloso en cuanto a las fechas de los artículos, ya que sé que varios service packs han modificado este comportamiento en varios puntos de la línea. –

1

Esta es una configuración que puede manipular para reciclar el grupo de aplicaciones según la cantidad de minutos que ha estado funcionando o el número de solicitudes que ha procesado.

También reciclará en web.config cambios y otras cosas que se han publicado aquí.

Un reinicio de IIS también servirá, al igual que los servicios de parada/inicio.

26

Es posible que desee activar completos registros AppPool de reciclaje de eventos:

cscript adsutil.vbs Set w3svc/AppPools/DefaultAppPool/LogEventOnRecycle 255 

También puede ser que desee echar un vistazo a este artículo de blog de Scott Guthrie: http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx que muestra cómo escribir código en Global.asax a registre la causa real de un evento Application.End.

Esto ha sido extremadamente útil para nosotros en el diagnóstico de varias cuestiones screwy - una en partictual era una aplicación que estaba escribiendo archivos de registro en el directorio wwwroot - demasiados cambios en los archivos resultantes en un reciclaje ...

+1

FYI: adsutil.vbs ya debería existir en la máquina. En mi máquina, vive en c: \ Inetpub \ AdminScripts \ yc: \ WINDOWS \ ServicePackFiles \ i386. –

+0

@Christopher_G_Lewis ¿Puede explicar el problema que usted planteó al escribir los archivos de registro en el directorio wwwroot? Hay demasiados cambios de archivos que provocan un reciclaje. –

+0

@ Bhagirath-N-Sai: IIS reciclará el grupo de aplicaciones si la FCN detecta ciertos cambios; consulte [Razones comunes por las cuales su grupo de aplicaciones puede reciclarse inesperadamente] (http://blogs.msdn.com/b/johan/archive/ 2007/05/16/common-reasons-why-your-application-pool-may-unexpectedly-recycle.aspx) –

Cuestiones relacionadas