web-dev-qa-db-fra.com

Comment diagnostiquer une erreur de serveur interne 500 sur IIS 7.5 lorsque rien n'est écrit dans le journal des événements?

Je viens de déployer une mise à jour sur un site ASP.NET MVC3 existant (il était déjà configuré) et je reçois l'écran bleu de la mort IIS indiquant

Erreur HTTP 500.0 - Erreur de serveur interne
La page ne peut pas être affichée car une erreur de serveur interne s'est produite.

Toutefois; rien ne s'affiche dans le journal des événements d'application où je m'attendrais à voir une description (plus) détaillée de l'entrée.

Comment puis-je procéder pour diagnostiquer ce problème?

46
Greg B

Jetez un œil à la fonction de suivi des demandes ayant échoué d'IIS7:

Dépannage des demandes ayant échoué à l'aide du suivi dans IIS 7
Résolution des problèmes liés au suivi des demandes ayant échoué

L'autre chose que je ferais est de modifier votre <httpErrors> paramètre car IIS peut être en train d'avaler un message d'erreur plus haut dans le pipeline:

<configuration>
  <system.webServer>
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
</configuration>

Si le site est écrit en Classic ASP alors assurez-vous d'activer le paramètre Envoyer les erreurs au navigateur dans le paramètre = ASP:

enter image description here

Et enfin, si vous utilisez Internet Explorer, assurez-vous d'avoir désactivé Afficher les messages d'erreur HTTP conviviaux dans les paramètres avancés (bien que je vous soupçonne l'ai déjà fait ou utilisez un autre navigateur).

44
Kev

Dans mon cas:

  • Le journal des événements était vide.
  • web.config n'était pas corrompu - vérifié en l'utilisant sur la machine locale/en utilisant inetmgr

Finalement...

  • Vérification des IIS ont montré une demande comme celle-ci

...Chrome/57.0.2987.133+Safari/537.36 500 19 5 312

La clé étant:

sc-status sc-substatus sc-win32-status 500 19 5

qui, avec quelques recherches sur Google, m'a montré le IIS_USRS ne disposant pas des autorisations de lecture sur le dossier www

13
fiat

Le problème le plus évident concerne les droits NTFS incorrects ou nuls sur le dossier d'application Web. Assurez-vous donc que le compte qui dessert le site dispose des autorisations appropriées. Sans droits NTFS appropriés sur le répertoire Web, peu importe ce que vous mettez dans le fichier web.config car il ne sera jamais lu.

Une vérification rapide peut être de donner à tous les droits complets - si le site commence à fonctionner, vous savez que c'est un problème de droits et vous pouvez alors commencer à attribuer les droits appropriés à un compte plus approprié.

4
rism

Si vous effectuez une mise à niveau à partir d'IIS6, il peut s'agir de l'un des travaux Web.config sur 6, mais pas dans IIS 7.5 ... Double-cliquez sur toutes les icônes dans IIS pour le site Web et vous pouvez obtenir une erreur sur le format (la section doit être en dessous d'une autre section ...)

1
M Hall

J'ai eu le même problème avec une application Web Azure. Lors du débogage local, les messages d'erreur (JSON) renvoyés par les appels ajax ont été entièrement renvoyés au navigateur. Mais une fois déployé sur l'application Web, les messages ont été avalés et on m'a renvoyé un message d'erreur 500 par défaut. J'ai donc dû définir explicitement la valeur existingResponse sur PassThrough dans la balise web.config httpErrors.

0
Loul G.