IIS 7.5, 2008rc2, asp classique, 500 msg d'erreur:
La page ne peut pas être affichée car une erreur de serveur interne s'est produite.
J'ai besoin de savoir comment configurer IIS pour obtenir une erreur plus détaillée.
J'ai essayé de définir sur true toutes les options de débogage dans la configuration ASP.
Mais cela n'a pas fonctionné. Quelqu'un peut-il m'aider?
Je suis venu au même problème et corrigé le même façon que Alex K .
Donc, si "Send Errors To Browser" ne fonctionne pas, définissez également ceci:
Pages d'erreur -> 500 -> Modifier les paramètres de fonction -> "Erreurs détaillées"
Notez également que si le contenu de la page d'erreur renvoyée est assez court et que vous utilisez IE, IE ignorera volontiers le contenu utile renvoyé par le serveur et vous montrera sa propre page d'erreur générique. Vous pouvez désactiver cette option dans les options d'IE ou utiliser un autre navigateur.
Si vous êtes sur un serveur distant, vous pouvez configurer votre fichier web.config comme suit:
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
Double-cliquez sur "ASP" dans l'écran d'accueil du site dans IIS admin, développez "Propriétés de débogage", activez "Envoyer les erreurs au navigateur", puis cliquez sur "Appliquer".
Sous "Pages d'erreur" sur l'écran d'accueil, sélectionnez "500", puis "Modifier les paramètres de fonction" et sélectionnez "Erreurs détaillées".
Notez que les mêmes étapes s'appliquent à IIS 8.0 (Windows Server 2012).
Dans web.config sous
<system.webServer>
remplacer (ou ajouter) la ligne
<httpErrors errorMode="Detailed"></httpErrors>
avec
<httpErrors existingResponse="PassThrough" errorMode="Detailed"></httpErrors>
En effet, par défaut, IIS7 intercepte les codes d’état HTTP tels que 4xx et 5xx générés par des applications plus avancées dans le pipeline.
Activez ensuite "Envoyer les erreurs au navigateur" dans la section "ASP" et sous "Pages d'erreur/Modifier les paramètres de fonction", sélectionnez "Erreurs détaillées".
En outre, attribuez autorisations d'écriture sur le dossier du site Web au groupe intégré IIS_IUSRS.
TLDR: Déterminez d’abord l’origine de l’erreur dans le pipeline (recherchez des captures d’écran ressemblant à votre erreur), effectuez les modifications nécessaires pour obtenir quelque chose de nouveau, répétez.
Si vous voyez le fichier situé ici ...
% SystemDrive%\inetpub\custerr \\ 500.htm
... qui ressemble généralement à ceci:
... alors vous savez que vous voyez la page d'erreur actuellement configurée dans ** IIS ** et vous n'avez PAS besoin de modifier le paramètre customErrors, erreur ASP. détail, ou "montrer les erreurs HTTP amicales" paramètre du navigateur.
Vous voudrez peut-être consulter le chemin référencé ci-dessus au lieu de faire confiance à ma capture d'écran au cas où quelqu'un le modifierait.
Dans ce cas, vous voyez le réglage de < httpErrors > ou dans IIS Manager, c'est Pages d'erreur -> Modifier les paramètres de fonctionnalité. La valeur par défaut est errorMode = DetailedLocalOnly au niveau du nœud du serveur (par opposition au niveau du site) , ce qui signifie que vous verrez cette page d'erreur configurée. à distance, vous devriez pouvoir vous connecter localement au serveur et voir l’erreur complète qui devrait ressembler à ceci:
Vous devriez avoir tout ce dont vous avez besoin à ce stade pour corriger l'erreur actuelle.
Cela laisse quelques possibilités.
Changez le httpErrors de votre site en "Détaillé" afin que vous puissiez le voir à distance. Mais si cela ne fonctionne pas, votre erreur est peut-être déjà une erreur de configuration, voir n ° 3 ci-dessus. Donc, vous êtes peut-être coincé avec # 4 et vous allez avoir besoin de quelqu'un de votre équipe de serveurs.
... et vous vous attendez à voir quelque chose comme ça ...
... alors vous devez remplacer "Envoyer les erreurs au navigateur" par true dans IIS Manager, sous Site -> IIS -> ASP - > Propriétés de débogage
ou ca...
... vous devez désactiver les erreurs faciles dans votre navigateur ou utiliser la vue Web de fiddler pour consulter la réponse réelle par rapport à ce que votre navigateur choisit de vous afficher.
Si tu vois ça ...
... alors les erreurs personnalisées fonctionnent, mais vous n'avez pas de page d'erreur personnalisée (bien sûr, à ce stade, parlions de .net et non d'asp classique). Vous devez modifier votre balise customErrors dans votre Web.config en RemoteOnly pour afficher sur le serveur ou Off pour afficher à distance.
Si vous voyez quelque chose qui ressemble à votre site, alors les erreurs personnalisées sont probablement activées ou distantes et affichent la page personnalisée (vues-> partagées-> erreur.cshtml dans MVC, par exemple). Cela dit, il est peu probable mais possible que quelqu'un modifie les pages dans IIS pour httpErrors. Reportez-vous à la première section à ce sujet.
essayez de définir la valeur de l'attribut httpErrors "existingResponse" sur "PassThrough". Le mien était réglé sur "Remplacer", ce qui empêchait l'affichage de YSOD.
<httpErrors errorMode="Detailed" existingResponse="PassThrough">
Une chose dont personne n'a parlé est une solution très rapide et temporaire. Vous pouvez afficher l'erreur sur l'hôte local de ce serveur Web.
Les gens de Fot qui ont essayé TOUT et ne peuvent tout simplement pas afficher les détails de l'erreur, comme moi, c'est une bonne idée de vérifier les différents niveaux de configuration. J'ai un fichier de configuration au niveau du site Web et au niveau de l'application (à l'intérieur du site Web), vérifiez les deux. En outre, il est également apparu que les erreurs détaillées étaient désactivées sur le nœud le plus élevé de IIS (juste sous la page de démarrage, son nom est identique à celui du nom de serveur Web). Vérifiez les pages d'erreur ici.
Vous pouvez également vérifier que si vous avez changé le dossier de votre site Web principal (c:\inetpub\wwwroot
) dans un autre dossier, vous devez autoriser en lecture le groupe IIS_IUSRS dans le nouveau dossier.
Je l'ai trouvé.
lancez cmd en tant qu'administrateur, allez dans votre dossier system32\inetsrv et exécutez:
appcmd.exe set config -section:system.webServer/httpErrors -allowAbsolutePathsWhenDelegated:true
Maintenant, je peux voir les erreurs asp détaillées.
Si vous exécutez le navigateur sur le serveur et testez votre URL du projet avec l'adresse IP locale, vous avez reçu toutes les erreurs de ce projet sans page d'erreur générale (par exemple, 500 pages d'erreur).