Espero que você possa me ajudar aqui, porque eu tentei obter algumas respostas em outro fórum ( veja aqui ) Esta pergunta é baseada em uma resposta de Scott Forsyth aqui .
Ao adicionar um novo diretório virtual ao 'site padrão' no Gerenciador do IIS, todos os outros Aplicativos localizados no site padrão são reciclados de alguma forma. Para simplificar meu problema, peguei um exemplo em que eu podia rastrear um timestamp de uma sessão atual e percebi que as informações da sessão estavam realmente se perdendo após a adição de um VD, o que significa que o AppDomain foi reciclado.
Esta é a situação:
Sites
Default Web Site
1 (virtual directory) (d:\TestAppDomains\)
- app1 (Application) (using App Pool 1)
2 (virtual directory) (d:\TestAppDomains\)
- app2 (Application) (using App Pool 2)
Tanto quanto eu entendi adicionando um diretório virtual é apenas fazer alterações no applicationHost.config, que não deve causar o AppDomains para reciclar. Talvez seja uma questão de delegação, mas eu acho que não entendi o suficiente para entender: (
Existem propriedades que afetam esse comportamento? Eu já defini as configurações do AppPool para não reciclar após uma alteração na configuração, mas isso não ajudou.
Eu realmente apreciaria se você pudesse me ajudar com este, porque eu estou lutando com ele por quase 6 meses agora.
É claro que irei fornecer mais informações se você precisar delas.
Atualização 1:
O HealthMonitoring não pode me ajudar por dois motivos:
- Não é possível encontrar nenhuma entrada para a reciclagem da AppPool, onde deveria estar? Visualizador de Eventos - > Registros do Windows / logs de aplicativos e serviços? (Deve ser configurado corretamente)
- Talvez eu tenha algo errado. Primeiro eu pensei que é uma reciclagem de pool de aplicativos, mas com o teste simplificado eu construo um exemplo sem quaisquer aplicativos e pools de aplicativos adicionais. Agora é assim:
Sites
Default Web Site
1 (virtual directory) (d:\TestAppDomains\)
session1.aspx (Sets current timestamp to session variable and redirects to session2.aspx)
session2.aspx (displays session variable)
Ao chamar o localhost / 1 / sessions1.aspx, posso ver o timestamp. Depois de adicionar um segundo diretório virtual (por exemplo, "2" (d: \ TestAppDomains \ 2)) e atualizando a página, a sessão desapareceu, o que significa que a variável é nula.
Felicidades, Adam