Question

J'essaie de réinstaller une DLL dans le GAC, tout semble bien fonctionner mais l'application web qui y accède semble toujours utiliser l'ancienne.

L'ancienne DLL est la même version que la nouvelle avec seulement une modification mineure, elle sera utilisée par 50 sites différents donc changer la version puis changer la référence dans le web.config n'est pas une erreur. bien solution.

Le redémarrage du serveur IIS ou du processus de travail n'est pas une option car 50 sites sont déjà en cours d'exécution et doivent continuer à le faire.

est-ce que quelqu'un sait ce que je fais de mal ou ce que je peux faire pour remédier à cette situation ?

Était-ce utile?

La solution

AFAIK, vous devez redémarrer IIS pour obtenir une nouvelle référence à la DLL mise à jour.Le mieux est d’effectuer la réinitialisation à un moment où le trafic est faible.Si vous exécutez plusieurs serveurs avec équilibrage de charge, vous pouvez empêcher les nouvelles connexions d'atteindre un serveur jusqu'à ce que toutes les connexions soient fermées.Ensuite, mettez à jour la DLL, redémarrez IIS et ramenez le serveur dans le pool de connexions.Répétez l’opération pour chaque serveur sans temps d’arrêt visible pour les utilisateurs finaux.

Autres conseils

Puisque vous ne faites pas référence aux pools d’applications, je vais supposer que vous utilisez l’ancienne version d’IIS.Dans ce cas, vous devrez « toucher » toutes les DLL de chaque site qui référencent la DLL.

Le problème est que le code est déjà chargé et que vous devez trouver un moyen non intrusif de recharger l'application.Le recyclage des pools d’applications est un moyen efficace d’y parvenir.Si vous utilisez l'ancien IIS qui ne dispose pas de pools d'applications, la mise à jour de la dernière modification dans les dossiers /bin/ ou les fichiers web.config rechargera l'application sans affecter les autres sites.

Un script quelconque pour faire ce qui précède est donc de mise.Tout ce qu'il a à faire est de mettre à jour la dernière modification sur les DLL dans chaque répertoire d'application /bin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top