1 votes

Le téléchargement de nouvelles DLL dans le dossier BIN d'asp.net fait que IIS 7 indique que le service n'est pas disponible.

J'ai un site web de commerce électronique asp.net 4 sur mon serveur web Windows Server 2008 R2. Je télécharge une DLL mise à jour dans le dossier /bin et bien sûr le site se recompile. Il s'agit d'un projet de site web, pas d'une application web. La plupart du temps, le site ne se rétablit pas, j'obtiens une erreur de service indisponible (503 je crois). Je dois me connecter au serveur par RDP et faire un IISRESET pour le rétablir. Malheureusement, cette opération met à l'arrêt tout ce qui se trouve sur le serveur.

Pourquoi cela se produit-il et comment puis-je l'éviter ? Comment puis-je faire en sorte que le site recompile avec succès lorsque le dossier /bin change et que le système d'information sur les systèmes d'exploitation (IIS) ne soit pas interrompu ou qu'il n'y ait pas de problème à l'origine de cette erreur ?

Nous vous remercions.

3voto

rmukhopadhyay Points 243

Il s'agit d'une condition de course entre ASP.NET et le déploiement. Lorsque le premier fichier ou dossier d'application est touché, il y a un recyclage de l'appdomain, qui se produit en succession rapide pendant le déploiement. S'il se termine dans le désordre, ASP.NET peut être déstabilisé et rester dans un état de rupture. Cela ne se produit pas pour la plupart des applications, mais cela peut arriver pour certaines d'entre elles, en particulier pour les grands sites soumis à une forte charge pendant le déploiement.

La solution consiste à "toucher" votre fichier web.config une fois que tout est terminé. Cela provoquera un recyclage de l'appdomain pour votre site uniquement, et ne nécessitera pas une réinitialisation de l'ensemble du serveur. Par 'touch', il faut simplement télécharger à nouveau le fichier web.config une fois le déploiement terminé.

Une autre option consiste à utiliser App_Offline.htm lors du déploiement.

Voici quelques blogs vidéo que j'ai publiés sur les AppDomains et le recyclage localisé qui pourraient vous être utiles :

0voto

CaribeGirl Points 51

Avez-vous enregistré les dll ? Regsvr32 et le chemin des DLL. S'il s'agit d'une version 32 bits, vous devriez utiliser regsvr32 dans le dossier syswow64. Une autre chose que vous pouvez faire est d'activer le traçage des requêtes en cas d'échec dans IIS afin de déterminer exactement où et quel est le problème. J'espère que cela vous aidera.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X