Aplicativo da Web ASP.NET não descarrega AppDomains após a implantação

Quando implantamos nosso aplicativo Web, copiamos todo o código para um novo diretório e, em seguida, apontamos o iis para esse novo diretório. Quando fazemos isso, o número de domínios de aplicativos aumenta, mas nunca diminui. Além disso, nosso evento Application_End nunca parece disparar.

Por algum tempo desconhecido, enquanto os dois conjuntos de AppDomains ainda são relatados pela perfmon, o sistema executa muito mal enquanto o% de tempo no GC atinge 100%. Eventualmente, reciclo o pool de aplicativos para que o aplicativo funcione sem problemas novamente.

Informações adicionais: listar os domínios do aplicativo mostra 2 na minha máquina de desenvolvimento, mas 4 são executados no servidor ativo ... temos apenas um aplicativo em execução no pool, o que significa que alguma biblioteca que estamos usando está criando domínios de aplicativos.

O que devo fazer para tentar depurar o que está acontecendo? O que impediria o descarregamento de um domínio de aplicativo?

Atualização 03/09/2014

Depois de obter algumas informações de log mais detalhadas, parece que o problema não são domínios de aplicativos antigos que ficam por aí, mas novos domínios de aplicativos criados durante a reinicialização. Em vez de o aplicativo iniciar uma nova instância, ele inicia duas. Às vezes, obtemos application_end da instância antiga, às vezes não.

Atualização 9/4/2014

As duas coisas estão acontecendo. Usando o Process Explorer, posso ver em uma das máquinas que o antigo domínio do aplicativo ainda está lá e um novo foi iniciado. Na outra máquina, havia apenas dois domínios de aplicativo, mas havia uma lacuna em seus IDs seqüenciais. Então, duas instâncias foram iniciadas (também recebemos uma mensagem de log no início do aplicativo), uma delas morreu quase que instantaneamente, deixando dois domínios de aplicativo.

questionAnswers(2)

yourAnswerToTheQuestion