IIS 7.5 - Desabilitar a propriedade Recycle Overlapped não sendo obedecida quando o web.config é atualizado

22

Eu tenho um site que possui um bloqueio exclusivo em alguns recursos. Eu usei os eventos .NET Application_Start e Application_End para adquirir e liberar o bloqueio desses recursos no momento apropriado. Para que isso funcione corretamente, só pode haver uma instância do meu aplicativo em execução a qualquer momento.

Para que isso aconteça, defini a propriedade Disable Overlapped Recycle no pool de aplicativos como True . Essa propriedade deve garantir que o processo antigo do trabalhador seja encerrado completamente antes que um novo seja iniciado sempre que o pool de aplicativos for reciclado. Isso funciona bem sempre que o pool de aplicativos é reciclado manualmente por meio do IIS, automaticamente como resultado do tempo limite inativo ser atingido ou automaticamente de acordo com as regras específicas de intervalo de tempo / hora.

No entanto, quando o web.config do site é atualizado, essa regra não é aplicada. - Um novo processo de trabalho é iniciado antes que o antigo termine o desligamento. Isso faz com que coisas ruins aconteçam. Eu tenho a propriedade Disable Recycling for Configuration Changes definida como False , pois quero que o pool de aplicativos seja reciclado quando o web.config for atualizado - isso acontece com frequência durante o desenvolvimento.

Isso é algo esperado ou é um bug no IIS? É minha única opção para configurar de modo que a alteração do web.config não recicle o pool de aplicativos? Prefiro não fazer isso, pois tenho certeza de que isso causará muitas dores de cabeça para as pessoas que estão alterando a configuração e, em seguida, esquecendo de reciclar o pool de aplicativos.

Atualização:

Para ser mais claro, quando o novo processo de trabalho start event for chamado antes do encerramento do processo de trabalho antigo, o antigo processo de trabalho end event nunca será chamado - Não acontece fora de sequência nunca acontece de jeito nenhum.

    
por John 07.03.2013 / 16:43

1 resposta

0

desta postagem do MSDN: link

Portanto, como parte do seu processo de implantação de código, parece que o pool será reciclado quando você implantar qualquer uma dessas alterações:

Reciclagem imediata

  • Alterações do Web.config
  • Alterações no Machine.config
  • Alterações globais.asax
  • Alterações no diretório bin
  • Alterações no App_Code

( emprestado de: link )

    
por 03.05.2017 / 21:03