Pergunta

Estou tentando reinstalar uma DLL no GAC, tudo parece funcionar bem, mas a aplicação web que a acessa ainda parece estar usando a antiga.

A DLL antiga é a mesma versão da nova com apenas uma pequena edição, ela será usada por 50 sites diferentes, portanto, alterar a versão e depois alterar a referência no web.config não é um problema. bom solução.

Reiniciar o servidor IIS ou o processo de trabalho não é uma opção, pois já existem 50 sites em execução que devem continuar a fazê-lo.

alguém sabe o que estou fazendo de errado ou o que posso fazer para remediar esta situação?

Foi útil?

Solução

AFAIK, você precisa reiniciar o IIS para obter uma nova referência à DLL atualizada.Sua melhor aposta é realizar a redefinição em um horário de baixo tráfego.Se você estiver executando vários servidores com balanceamento de carga, poderá impedir que novas conexões atinjam um servidor até que todas as conexões tenham sido fechadas.Depois, atualize a DLL, reinicie o IIS e traga o servidor de volta ao pool de conexões.Repita para cada servidor sem tempo de inatividade visível para os usuários finais.

Outras dicas

Como você não faz referência a pools de aplicativos, presumo que você esteja na versão antiga do IIS.Nesse caso, o que você precisa fazer é “tocar” em todas as DLLs de cada site que faz referência à DLL.

O problema é que o código já está carregado e você precisa encontrar uma forma não intrusiva de recarregar o aplicativo.A reciclagem de pools de aplicativos é uma maneira eficaz de fazer isso.Se você estiver no IIS antigo que não possui pools de aplicativos, a atualização da última modificação nas pastas /bin/ ou nos arquivos web.config recarregará o aplicativo sem afetar os outros sites.

Portanto, algum tipo de script para fazer o que foi dito acima é adequado.Tudo o que precisa fazer é atualizar o lastmodified nas DLLs em cada diretório de aplicativo /bin.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top