Un de mes collègues de travail a le problème suivant (certains détails pertinents peuvent nécessiter un examen plus approfondi) :
Le serveur est Windows 2008 Server. Un service Windows est en cours d'exécution (exe (.net), qui utilise également un assemblage .NET). Il y a un bogue avec la dll et/ou l'exe. Certains messages de débogage ont été ajoutés et supprimés de la dll. Cette nouvelle version de la dll et son exe recompilé ont été envoyés par ftp sur ce serveur, le service a été arrêté, la dll et l'exe existants ont été renommés et remplacés par les nouveaux, et le service a démarré.
Nous voyons toujours les messages de débogage qui ont été supprimés de la dll. Ils n'existent pas dans le nouveau code.
Le serveur a été redémarré.
L'ancienne dll est-elle mise en cache quelque part ? d'une manière ou d'une autre ? Merci.
UPDATE
Ce qui suit vient d'arriver :
- le fichier assembly.old récemment renommé a été physiquement supprimé (c'était la seule et unique copie).
- Les anciens messages de débogage sont toujours là !
- service désinstallé/réinstallé (mais nous pensons que nous aurions pu nous en sortir avec un redémarrage)
- travaux.
Donc, sachant ce qui s'est passé avant (ce qui incluait un redémarrage du système d'exploitation), et ce qui s'est passé maintenant, d'une manière ou d'une autre Windows suit les dll( ?) et quand la copie a été renommée, Windows défie la mise à jour et associe (dans son esprit) que assembly.old sera assembly.dll. Et non le nouveau assembly.dll qui a été mis à sa place ?
Parce que assembly.dll et assembly.old sont dans le même répertoire, après le redémarrage du système d'exploitation, l'ancienne dll est continuellement regardée. assembly.dll et pas assembly.old fonctionnent.
Ce qui me déconcerte, c'est comment on contrôle ça ? Ou bien où se trouve la documentation à ce sujet ?
Autres informations : Version 64 bits du serveur. UNE VM.