Fazer o upload de novas DLLs para a pasta asp.net BIN faz com que o IIS 7 torne o serviço indisponível

1

Eu tenho um site de comércio eletrônico asp.net 4 no meu servidor web Windows Server 2008 R2. Eu carrego uma DLL atualizada para a pasta / bin e, claro, o site recompila. É um projeto de site, não um aplicativo da web. Mais vezes do que não o site não vai voltar, eu vou ter um erro de serviço indisponível (503 eu acho). Eu tenho que RDP no servidor e fazer um IISRESET para trazê-lo de volta. Infelizmente isso roda tudo no servidor.

Por que isso acontece e como posso evitá-lo? Como posso ter o site recompilar com êxito quando a pasta / bin muda e não tem o tempo limite do IIS ou o que está causando esse erro?

Obrigado.

    
por Neal 22.04.2011 / 17:19

2 respostas

3

Essa é uma condição de corrida entre o ASP.NET e a implantação. À medida que o primeiro arquivo ou pasta de aplicativo é tocado, haverá uma reciclagem de appdomain, que ocorrerá em rápida sucessão durante a implantação. Se terminar fora de ordem, o ASP.NET pode ser descartado e permanecer em um estado quebrado. Isso não acontece na maioria dos aplicativos, mas pode, em alguns casos, especialmente nos grandes sites com alta carga durante a implantação.

A solução é "tocar" seu arquivo web.config depois que tudo estiver terminado. Isso causará uma reciclagem de appdomain apenas para seu site e não exigirá uma redefinição em todo o servidor. Por toque, basta fazer o upload do web.config novamente após a conclusão da sua implantação.

Outra opção é usar App_Offline.htm durante a implantação.

Aqui estão alguns blogs em vídeo que publiquei no AppDomains e uma reciclagem localizada que você pode achar útil:

por 22.04.2011 / 18:53
0

Você registrou as dlls? Regsvr32 e o caminho de DLLs. Se for de 32 bits, você poderá usar o regsvr32 na pasta syswow64. Outra coisa que você pode fazer é habilitar o rastreamento de solicitação com falha no IIS para descobrir exatamente onde e qual é o problema. Espero que isso ajude

    
por 22.04.2011 / 19:24