Um colega meu está com o seguinte problema (alguns detalhes relevantes podem exigir mais exames):
O servidor é o Windows 2008 Server. Existe um serviço do Windows em execução (exe (.net), que também utiliza um assembly .NET). Há algum erro com a dll e / ou exe. Algumas mensagens de depuração foram adicionadas e removidas da DLL. Essa nova versão da dll e seu exe recompilado foram transferidos por ftp para esse servidor, o serviço foi parado, a dll e o exe existentes foram renomeados e substituídos pelo novo, e o serviço foi iniciado.
Ainda vemos mensagens de depuração removidas da DLL. Eles não existem no novo código.
O servidor foi reiniciado.
A dll antiga está ficando em cache em algum lugar? de alguma forma? Obrigado.
ATUALIZAR
Aconteceu o seguinte:
- o assembly.old recentemente renomeado foi removido fisicamente (essa foi a única cópia)
- mensagens de depuração antigas ainda estão lá!
- serviço desinstalado / reinstalado (embora pensemos que poderíamos ter escapado com uma reinicialização)
- trabalho.
Portanto, sabendo o que aconteceu antes disso (que incluía uma reinicialização do sistema operacional) e o que aconteceu agora, de alguma forma / de alguma maneira o Windows está rastreando as dlls (?) E quando a cópia foi renomeada, o Windows desafia a atualização e os associados (na sua mente) que assembly.old será assembly.dll. Não é o novo assembly.dll que foi colocado em seu lugar?
Porque assembly.dll e assembly.old no mesmo diretório, após a reinicialização do SO - dll antiga continuamente olhou. assembly.dll e nenhum assembly.old - funciona.
O que me deixa perplexo é como você controla isso? Ou onde está a documentação sobre isso?
Outras informações: versão de 64 bits do servidor. Uma VM.
fonte