TLDR: Déterminez d'abord où dans le pipeline vous obtenez l'erreur (faites défiler la recherche pour des captures d'écran de quelque chose qui ressemble à votre erreur), apportez des modifications pour obtenir quelque chose de nouveau, répétez.
Déterminez d'abord le message d'erreur que vous voyez réellement.
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 que vous n'avez PAS besoin de modifier le paramètre d'ASP.net customErrors, le paramètre de détail d'erreur asp ou le paramètre de navigateur "Afficher les erreurs http conviviales".
Vous voudrez peut-être regarder le chemin référencé ci-dessus au lieu de faire confiance à ma capture d'écran au cas où quelqu'un la modifierait.
"Oui, je vois l'erreur décrite ci-dessus ..."
Dans ce cas, vous voyez le paramètre < httpErrors > ou dans IIS Manager, c'est Error Pages -> Edit Feature Settings. La valeur par défaut pour cela est errorMode = DetailedLocalOnly au niveau du nœud du serveur (par opposition au niveau du site), ce qui signifie que même si vous verrez cette page d'erreur configurée à distance, vous devriez pouvoir vous connecter localement au serveur et voir l'intégralité erreur qui devrait ressembler à ceci:
Vous devriez avoir tout ce dont vous avez besoin à ce stade pour corriger l'erreur actuelle.
"Mais je ne vois pas l'erreur détaillée même en naviguant sur le serveur"
Cela laisse quelques possibilités.
- Le navigateur que vous utilisez sur le serveur est configuré pour utiliser un proxy dans ses paramètres de connexion afin qu'il ne soit pas considéré comme «local».
- Vous ne naviguez pas réellement vers le site sur lequel vous pensez naviguer - cela se produit généralement lorsqu'un équilibreur de charge est impliqué. Faites une vérification ping pour voir si dns vous donne une adresse IP sur le serveur ou ailleurs.
- Les paramètres httpErrors de votre site sont définis sur "Personnalisé" uniquement. Changez-le en "DetailedLocalOnly". Cependant, si vous rencontrez une erreur de configuration, cela peut ne pas fonctionner car le niveau de site httpErrors est également un élément de configuration. Dans ce cas, passez au n ° 4
- La valeur par défaut de httpErrors pour tous les sites est définie sur "Personnalisé". Dans ce cas, vous devez cliquer sur le nœud de serveur de niveau supérieur dans le Gestionnaire des services Internet (et non sur un site particulier) et modifier les paramètres httpErrors en DétailléLocalOnly. S'il s'agit d'un serveur interne et que vous ne craignez pas de divulguer des informations sensibles, vous pouvez également le définir sur "Détaillé", ce qui vous permettra de voir l'erreur provenant de clients autres que le serveur.
- Il vous manque un module sur le serveur comme UrlRewrite (celui-ci me mord beaucoup, et il donne souvent le message générique quels que soient les paramètres de httpErrors).
"La connexion au serveur n'est pas une option pour moi"
Modifiez les httpErrors de votre site en "Détaillé" afin de pouvoir le voir à distance. Mais si cela ne fonctionne pas, votre erreur peut déjà être une erreur de configuration, voir # 3 immédiatement ci-dessus. Vous pourriez donc être coincé avec le n ° 4 ou le n ° 5 et vous aurez besoin de quelqu'un de votre équipe serveur.
"Je ne vois pas la page d'erreur décrite ci-dessus. Je vois quelque chose de différent"
Si vous voyez ceci ...
... et vous vous attendez à voir quelque chose comme ça ...
... alors vous devez changer «Envoyer les erreurs au navigateur» sur true dans le Gestionnaire des services Internet (IIS), sous Site -> IIS -> ASP -> Propriétés de débogage
Si vous voyez ceci ...
ou ca...
... vous devez désactiver les erreurs conviviales dans votre navigateur ou utiliser la vue Web de Fiddler pour regarder la réponse réelle par rapport à ce que votre navigateur choisit de vous montrer.
Si vous voyez ceci ...
... alors les erreurs personnalisées fonctionnent mais vous n'avez pas de page d'erreur personnalisée (bien sûr, à ce stade, nous parlions de .net et non d'asp classique). Vous devez changer 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 On ou RemoteOnly et cela affiche la page personnalisée (Views-> Shared-> Error.cshtml dans MVC par exemple). Cela dit, il est peu probable mais possible que quelqu'un ait changé les pages dans IIS pour httpErrors, alors voyez la première section à ce sujet.