Erreur HTTP 503. Le service est indisponible. Le pool d'applications s'arrête lors de l'accès au site Web


167

Il y a un certain nombre d'articles à ce sujet et j'ai déjà essayé beaucoup de choses. Mais en vain. Moi-même un développeur Winforms, j'ai commencé à travailler sur ce truc Web il y a quelques jours alors que mon entreprise prend des initiatives Web.

J'ai un projet ASP.Net et je souhaite l'héberger sur IIS local. Dans les Project properties -> Webparamètres, j'ai choisi Use Local IIS Serveret donné une URL comme localhost/MyApp. J'ai essayé d'y accéder sur mon navigateur Firefox et j'ai reçu une erreur commeHTTP Error 503. The service is unavailable.

Auparavant, j'avais beaucoup d'autres erreurs et je les ai toutes corrigées une par une. Mais frappé par celui-ci. Voici les paramètres que j'ai dans mon projet

  1. Pool d'applications défini sur ASP.Net v4.0 Classic
  2. La Enable 32 bit Applicationpropriété du pool d'applications est vraie
  3. Le pool d'applications est démarré
  4. Propriété de génération de projet définie sur Any CPUpour le cadre cible

Mais je voudrais mentionner un comportement étrange. Voici quelque chose auquel je suis confronté

  1. Le pool d'applications est démarré
  2. J'essaye d'accéder à mon site Web local (en donnant l'URL comme localhost/MyApp)
  3. Je reçois l'erreur comme HTTP Error 503. The service is unavailable
  4. Le pool d'applications est arrêté

J'ai vu le lien suivant et je l'ai déjà essayé. Pour le comportement ci-dessus, je suis arrivé ici . Selon ce lien, le nom de l'ordinateur ne devrait pas y .figurer. Je n'en ai pas .dans le nom de mon ordinateur, mais j'en ai -dedans. Mon nom de domaine contient .également. De plus, je ne peux pas modifier ces paramètres car c'est mon ordinateur portable de bureau et nos paramètres TFS sont liés à nos noms de domaine et d'ordinateur.

Quelqu'un peut-il m'aider à comprendre ce qui se passe? Guidez-moi s'il-vous-plaît. Merci.

Éditer

J'ai le code suivant dans Global.asax. Application_BeginRequestLa méthode est vide dans le même fichier.

protected override void Application_Start(object sender, EventArgs e)
{
    base.Application_Start(sender, e);
    String _path = String.Concat(System.AppDomain.CurrentDomain.RelativeSearchPath, ";",
                                         System.Environment.GetEnvironmentVariable("PATH"));
    System.Environment.SetEnvironmentVariable("PATH", _path, EnvironmentVariableTarget.Process);
    MyAppLog.Initialize();
    MyAppLog.WriteMessage("Application Started");
}

Mettre à jour

Selon les suggestions dans Comment, je suis en mesure d'exécuter le site Web de Cassini.


Avez-vous du code dans votre Global.asax qui s'exécute au démarrage de l'application? Quelque chose qui pourrait rester coincé dans une boucle? Vous avez activé, Enable 32 bit Applicationmais utilisez-vous uniquement des DLL 32 bits?
CodingIntrigue

Que se passe-t-il lorsque vous l'exécutez dans Cassini?
Simon Whitehead

@RGraham: J'ai défini la propriété de construction du projet sur Any CPU. Je pense donc que les DLL utilisées ne devraient pas poser de problème. Veuillez consulter la modification pour le code Global.asax. Merci
Sandy

@SimonWhitehead: Aucune idée de ce qu'est Cassini. Je l'ai téléchargé maintenant sur cassinidev.codeplex.com . Je peux voir quelques dll et exe dans les fichiers téléchargés. Pourriez-vous s'il vous plaît m'aider à l'utiliser? En attendant, je vais essayer de lire sur cette question à partir de sources Internet.
Sandy

@SimonWhitehead: Je suis capable d'exécuter le site Web de Cassini.
Sandy

Réponses:


315

Cela peut être dû au fait que le pool d'applications dans IIS est configuré pour s'exécuter sous un compte personnalisé et que ce compte n'existe pas ou qu'un mot de passe incorrect a été fourni, ou le mot de passe a été modifié. Regardez les propriétés avancées du pool d'applications dans IIS pour le compte qu'il utilise.

Le journal des événements peut également contenir plus d'informations sur la raison pour laquelle le pool d'applications s'arrête immédiatement à la première demande.

entrez la description de l'image ici


38
Dans mon cas, c'était le problème. J'avais changé mon mot de passe Windows et mon IIS local pour Windows 8.1 a cessé de fonctionner. J'ai dû mettre à jour chaque projet à plusieurs endroits. Dans IIS 8, j'ai dû mettre à jour les informations d'identification dans le pool d'applications en faisant un clic droit sur le pool et en cliquant sur "Paramètres avancés -> Modèle de processus -> Identité". J'ai ensuite dû mettre à jour le site lui-même en allant dans "Sites -> MySITE -> Paramètres avancés ->
Informations d'

4
Même si le compte existe et que le mot de passe est correct, il peut avoir été désactivé; cela provoquerait les mêmes symptômes.
Wolfgang

2
Oui, c'est la solution. Le mot de passe de mon compte est changé très souvent. Et j'ai oublié de donner le nouveau mot de passe dans les "Paramètres avancés"
mihkov

2
vérifier le journal des événements est la voie à suivre, m'a toujours aidé dans ces problèmes, la dernière fois que j'ai vérifié le journal des événements et j'ai constaté que le chargement de rewrite.dll dans iis échouait, je suis allé aux programmes et aux fonctionnalités du panneau de configuration, réparé l'installation, et tout est revenu à la normale.
Amr Elgarhy

3
Nous avons récemment changé de mot de passe. C'était la solution. Pour les autres, voir capture d'écran ici: i.imgur.com/rp8bnGy.png
AskYous

43

Ok, j'ai une autre solution pour un cas spécifique: si vous utilisez WINDOWS 10 et que vous l'avez mis à jour récemment (avec le package Anniversary Update), vous devez suivre les étapes ci-dessous:

  1. Vérifiez votre Windows Event Viewer- appuyez sur Win + R et tapez:, eventvwrpuis appuyez sur ENTRÉE.
  2. Sur le côté gauche de Windows Event Viewercliquez sur Windows Logs-> Application.
  3. Vous devez maintenant trouver des ERREURS pour la source IIS-W3SVC-WPdans la fenêtre du milieu.
  4. Vous verrez probablement un message comme:

Le module DLL >> chemin-vers-DLL << n'a pas pu être chargé. La donnée est l'erreur.

  1. Vous devez aller à Control Panel-> Program and Featureset en fonction de la dll qui ne peut pas être chargée, vous devez réparer un autre module:
    • for rewrite.dll- recherchez IIS URL Rewrite Module 2 et cliquez sur Change->Repair
    • pour aspnetcore.dll- recherchez Microsoft .NET Core 1.0.0 - VS 2015 Tooling ... et cliquez sur Change-> Repair.
  2. Redémarrez votre ordinateur.

Cette réponse m'a aidé à résoudre un problème similaire. Erreur "Service indisponible" corrigée en supprimant Core 2.2 (la réparation seule n'a pas été corrigée). vote.
Roberto

2
La réponse acceptée n'a pas aidé. Cela a fait. Merci!
Devil's Advocate

1
excellente réponse, le journal me montre que le module DLL C: \ Windows \ System32 \ inetsrv \ compdyn.dll n'a pas pu se charger. La donnée est l'erreur. alors
j'installe

Pour moi, c'était: The Module DLL C:\Windows\System32\inetsrv\iis_ssi.dll failed to load. The data is the error.J'ai donc installé Select Server Side Included selon cette suggestion
David Refoua

14

Pour ma situation, mon mot de passe de connexion a changé, tandis que le pool d'applications utilise toujours l'ancien. Cliquez donc simplement sur "Paramètres avancés" de votre pool d'applications et réinitialisez votre "Identité".


Je conviens que cela arrive assez souvent
Sandy

11

J'étais confronté au même problème et je l'ai débogué à l'aide des journaux d'événements. Tout d'abord, il a déclaré que: "La description de l'ID d'événement 5059 de la source Microsoft-Windows-WAS est introuvable".

J'ai ensuite activé WAS en utilisant l' activation / la désactivation des fonctionnalités de Windows . Ensuite, j'ai vu cela dans eventvwr "Microsoft-Windows-DistributedCOM ne peut pas être trouvé".

Enfin, j'ai abandonné et supprimé le pool d'applications (qui s'arrêtait auparavant lors de l'accès au site Web) et l'ai créé à nouveau, tel quel. Cela a résolu le problème.


Et si vous avez un tas de sites référençant le même pool d'applications, vous pouvez utiliser appcmd pour les mettre à jour par lots : appcmd list site /xml | appcmd set site /[path='/'].applicationPool:YOURNEWPOOL /in
drzaus

A travaillé pour moi aussi. En passant de 2008 à 2012, les pools d'applications n'étaient pas entièrement satisfaits.
Anthony Horne

6

Pour tous ceux qui viennent ici avec Windows 10 et après les avoir mis à jour vers la mise à jour anniversaire, veuillez vérifier ce lien, cela m'a aidé:

https://orcharddojo.net/blog/troubleshooting-iis-apppool-crashes-status-503-after-windows-10-anniversary-update

En cas de panne du lien: Si votre journal des événements indique que aspnetcore.dll, rewrite.dll (le plus souvent, mais il pourrait en être d'autres également) n'a pas pu se charger, vous devez réparer les éléments manquants.

Voici deux problèmes spécifiques que nous avons rencontrés jusqu'à présent et comment les résoudre, mais vous pouvez en rencontrer des complètement différents:

"C:\WINDOWS\system32\inetsrv\rewrite.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "IIS URL Rewrite Module 2".
"C:\WINDOWS\system32\inetsrv\aspnetcore.dll" (reference)
    Go to "Programs and Features" (Win+X, F) and repair "Microsoft .NET Core 1.0.0 - VS 2015 Tooling ...".

6

La plupart du temps, cela s'est produit en raison du paramètre AppPool.

Vérifiez les éléments suivants pour résoudre ce problème

  1. Vérifiez que le service Apppool est en cours d'exécution.
  2. Vérifiez l'identité d'AppPool.
  3. Saisissez le nouveau mot de passe s'il a changé pour cette identité.

Les images suivantes montrent ces paramètres dans IIS

entrez la description de l'image ici


5

Si vous disposez de McAfee HIPS et si l'erreur suivante s'affiche dans le journal des applications de l'observateur d'événements:

Le module DLL C: \ Windows \ System32 \ inetsrv \ HipIISEngineStub.dll n'a pas pu se charger.
La donnée est l'erreur.

Ensuite, ce qui suit a résolu le problème dans mon cas: https://kc.mcafee.com/corporate/index?page=content&id=KB72677&actp=LIST

Citation de la page:

  1. Cliquez sur Démarrer, Exécuter, tapez explorer et cliquez sur OK.
  2. Accédez à:% windir% \ system32 \ inetsrv \ config
  3. Ouvrez le fichier applicationHost.config en tant qu'administrateur pour le modifier dans le Bloc-notes.
  4. Modifiez la section <globalModules> et supprimez la ligne suivante:
    <add name = "MfeEngine" image = "% windir% \ System32 \ inetsrv \ HipIISEngineStub.dll" />

  5. Modifiez la section <modules> et supprimez la ligne suivante:
    <add name = "MfeEngine" />

  6. Une fois que vous avez terminé de modifier le fichier applicationHost.config, enregistrez le fichier, puis redémarrez le serveur IIS à l'aide de iisreset ou en redémarrant le système.

5

Dans mon cas, j'ai vérifié les journaux des événements et j'ai trouvé que l'erreur était Impossible de lire le fichier de configuration 'en essayant de lire les données de configuration à partir du fichier' \\? \ ', Numéro de ligne' 0 '. Le champ de données contient le code d'erreur.

Le code d'erreur était 2307.

J'ai supprimé tous les fichiers dans C: \ inetpub \ temp \ appPools et redémarré le iis. Cela a résolu le problème.


4

J'ai eu un problème similaire. Je l'ai résolu en ajoutant mon utilisateur à la politique «Ouvrir une session en tant que travail par lots» sous «Politique de sécurité locale»> «Politiques locales»> «Attribution des droits d'utilisateur».


4

Lorsque j'ajoute le service pour la première fois et que j'en ai créé le pool d'applications. J'ai fait "iisreset" à partir de l'invite de commande, et cela a fonctionné.


3

Si vous pouvez exécuter le site Web dans le débogueur Visual Studio, vous pourrez peut-être voir où dans votre code le pool d'applications se bloque. Dans mon cas, c'était une fonction appelée récursivement un nombre illimité de fois, et cela a provoqué un débordement de pile. Remarque: le journal des événements Windows et les journaux IIS n'ont pas été utiles pour diagnostiquer le problème.


3

J'ai eu le même problème avec iis 8.5. Après avoir recherché EventViewer sous Windows Logs -> applications, j'ai réalisé que j'avais une erreur d'autorisation pour le fichier machine.config du framework .net situé dans "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config ". Lui donner une autorisation pour IIS_IUSRS a résolu mon problème (clic droit sur le fichier -> propriétés -> sécurité -> modifier -> ajouter -> IIS_IUSRS)


3

Je rencontrais cette erreur et dans mon cas, la cause était qu'il y a quelque temps, j'ai modifié le mot de passe de l'utilisateur et que l'erreur 503 n'apparaît que lorsque j'ai redémarré le pool d'applications.

Je l'ai donc corrigé en définissant le nouveau mot de passe sur les pools d'applications / Paramètres avancés / Identité / [...] / Définir ... / Mot de passe / Confirmer le mot de passe


2

J'ai eu un problème similaire, tous mes pools d'applications s'arrêtaient chaque fois qu'une demande Web leur était adressée. Bien que j'obtienne l'erreur suivante dans l'Observateur d'événements:

Le processus de travail pour le pool d'applications 'appPoolName' a rencontré une erreur 'Le fichier de configuration n'est pas bien formé XML' en essayant de lire les données de configuration à partir du fichier '\? \ C: \ inetpub \ temp \ apppools \ appPoolName \ appPoolName.config', ligne numéro 3'. Le champ de données contient le code d'erreur.

Ce qui m'a dit qu'il y avait des erreurs dans l'application.config à:

C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config

Dans mon scénario, j'ai modifié le web.config lors du déploiement avec un élément que IIS n'aime clairement pas, l'applicationHost.config a gratté le web.config et inséré ce mauvais élément et ne résoudrait pas tant que je ne l'ai pas supprimé manuellement


"un élément que IIS n'aime clairement pas" quel est cet élément spécifique que vous avez mentionné ??
Akhil

J'ai fait ce post il y a plus de 4 ans. Je ne sais pas quel élément était dans le web.config mais ce n'est pas le point. Le problème de pool d'applications décrit par l'OP m'est arrivé et je récupérais ces messages d'erreur inutiles. La cause de ce qui précède était que j'avais mis une entrée incorrecte dans le web.config de mon site. (peut-être avec une faute d'orthographe ou une erreur de syntaxe ou une section que IIS n'a pas reconnue comme valide)
ShaneC

2

En plus des étapes décrites sur ce lien de la réponse d'Orhan , vous devrez peut-être supprimer en plus le module natif en accédant à Gestionnaire IIS> Racine du serveur> Modules> Configurer les modules natifs. Sélectionnez MfeEngine, puis sélectionnez Supprimer.


2

Changer le "Managed Pipeline Mode" de "Classic" à "Integrated" a fonctionné pour moi. Il peut être modifié dans les pools d'applications -> Paramètres de base


Cela a résolu mon problème qui est apparu après l'application de la base de connaissances Windows suivante à notre serveur Windows 2008 R2 exécutant IIS 7.5. ### Correctif cumulatif de sécurité et de qualité de juillet 2019 pour .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 sous Windows 7 et Server 2008 R2 pour x64 (KB4507420) Plus d'informations: support.microsoft.com/kb/4507420 ###
phanf

1

Il suffit d'ajouter à ces Anniversary Updatequestions (merci Microsoft) si le fichier que vous manque cgi.dll, à savoir votre Event Viewera

The Module DLL C:\WINDOWS\System32\inetsrv\cgi.dll failed to load.  The data is the error.

Ensuite, pour résoudre ce problème:

  1. Aller à IIS Manager
  2. Sélectionnez la rangée tout en haut dans le Connections panneau (généralement le nom de votre PC)
  3. Tout en bas du panneau de droite, sous Management, vous devriez avoirWeb Platform Installer
  4. Une fois que cela se charge, sélectionnez Products
  5. Dans la recherche, tapez cgipuis appuyez sur<Enter>
  6. Sélectionnez IIS: CGIpuis cliquez Addà droite et enfin Installen bas
  7. Après l'installation, cela devrait vous forcer à redémarrer votre PC et vous devriez être corrigé.

1
Le mien était le "Url Rewrite" que j'ai désinstallé puis réinstallé. Parce que j'ai eu cette erreur: "Le module DLL C: \ WINDOWS \ system32 \ inetsrv \ rewrite.dll n'a pas pu se charger. Les données sont l'erreur."
Gwasshoppa

0

Cette réponse vous aidera-t-elle?
Si vous recevez le message suivant dans EventViewer

Le module DLL aspnetcorev2.dll n'a pas pu se charger. La donnée est l'erreur.

Alors oui cela résoudra votre problème


Pour vérifier votre visionneuse d'événements

  1. appuyez sur Win + R et tapez: eventvwr puis appuyez sur ENTRÉE.
  2. Sur le côté gauche du Windows Event Viewerclic sur Windows Logs->Application.
  3. Vous devez maintenant trouver des ERREURS pour la source IIS-W3SVC-WPdans la fenêtre du milieu.

si vous recevez le message d'erreur précédent, la solution est:

Installez Microsoft Visual C ++ 2015 Redistributable 86x AND 64X (les deux)

La source

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.