La aplicación web ASP.NET no descarga AppDomains después de la implementación

Cuando implementamos nuestra aplicación web, copiamos todo el código a un nuevo directorio y luego apuntamos a ese nuevo directorio. Cuando hacemos esto, el número de dominios de aplicación aumenta pero nunca disminuye. Además, nuestro evento Application_End nunca parece activarse.

Durante un tiempo desconocido, aunque perfmon informa de ambos conjuntos de AppDomains, el sistema funciona muy mal mientras que el% de tiempo en los picos de GC es del 100%. Finalmente, reciclo el grupo de aplicaciones para que la aplicación vuelva a funcionar sin problemas.

Información adicional: enumerar los dominios de aplicación muestra 2 en mi máquina de desarrollo, pero 4 se ejecutan en el servidor en vivo ... solo tenemos una aplicación ejecutándose en el grupo, por lo que esto significa que alguna biblioteca que estamos usando está creando dominios de aplicación.

¿Qué debo hacer para tratar de depurar lo que está sucediendo? ¿Qué evitaría que se descargue un dominio de aplicación?

Actualización 3/3/2014

Después de obtener información de registro más detallada, parece que el problema no es que los dominios de aplicaciones anteriores permanezcan, sino que se crean nuevos dominios de aplicaciones durante el reinicio. En lugar de que la aplicación inicie una nueva instancia, inicia dos. A veces obtenemos application_end de la instancia anterior, a veces no.

Actualización 4/9/2014

Ambas cosas están sucediendo. Usando el explorador de procesos, puedo ver en una de las máquinas que el dominio de la aplicación anterior todavía está allí y que ha comenzado uno nuevo. En la otra máquina solo había 2 dominios de aplicación, pero había una brecha en sus identificadores secuenciales. Entonces, se iniciaron dos instancias (también recibimos un mensaje de registro desde el inicio de la aplicación), una de ellas se extinguió casi al instante, dejando 2 dominios de la aplicación.

Respuestas a la pregunta(2)

Su respuesta a la pregunta