Quelle est la différence entre les sections customErrors
et httpErrors
du fichier web.config dans les applications ASP.NET MVC?
Quelles sont les directives d'utilisation de chaque section?
web-config
iis-7.5
Alan T
la source
la source
Réponses:
Avertissement: Ceci est de mon expérience et non prouvé.
Les deux sont utilisés pour définir la gestion des erreurs pour un site Web, mais différents logiciels font référence à différents éléments de configuration.
customErrors
sont un élément hérité (rétrocompatible), utilisé par Visual Studio Development Server (alias. VSDS ou Cassini).httpErrors
sont le nouvel élément qui n'est utilisé que par IIS7.Cela met en évidence le problème possible lors du développement de sites Web ASP.NET lors de l'utilisation de VSDS au lieu de l'IIS local.
Référez - vous également à cet article pour savoir comment gérer les messages d'erreur avec IIS7, si vous souhaitez avoir un contrôle total sur la sortie d'erreur.
Résumé:
VSDS
- utilisercustomErrors
IIS6
- utilisercustomErrors
IIS7
utiliserhttpErrors
.et si vous développez avec
VSDS
mais publiez surIIS7
, alors je suppose que vous aurez besoin des deux.la source
* Mis à jour en avril 2016
L'attribut customErrors est utilisé lorsque le code .net lève une exception (404, 403, 500, etc.) et l'attribut httpErrors est utilisé lorsque IIS lui-même lève une exception.
Il y a de nombreux pièges à essayer de configurer cela correctement. Donc, si vous cherchez un exemple rapide, les 2 meilleures options que vous avez sont:
Exemple 1: Utilisation de pages html
Exemple 2: utilisation de pages aspx
Et dans les pages d'erreur aspx, vous devez faire quelque chose comme ceci (exemple de la page 404):
Remarque: il n'est pas possible d' utiliser l'extension sans URL dans la section customErrors ! . (sans hacks)
Une solution consiste à désactiver les erreurs personnalisées et à laisser les erreurs http gérer la page personnalisée. Un ami a créé une telle configuration, quand je trouverai du temps, je partagerai le code.
Contexte
Une bonne page d'erreur personnalisée:
Donc, pour clarifier certaines options de notre config:
<customErrors mode="RemoteOnly"
. Vous pouvez spécifier ici:On
,Off
,RemoteOnly
.On
= Toujours afficher les pages d'erreur personnaliséesOff
= Toujours afficher la vraie erreurRemoteOnly
= Afficher l'erreur localement, mais afficher la page d'erreur personnalisée à distance. Nous voulons doncRemoteOnly
pour la déclaration 1<customErrors redirectMode="ResponseRewrite"
. Vous pouvez spécifier ici:ResponseRedirect
ouResponseRewrite
. LeResponseRedirect
mode redirigera la page d'erreur vers la page d'erreur personnalisée. Pour un robot d'exploration de liens (SEO), cela entraînera 302 -> 500, mais vous voulez que le robot d'exploration de liens obtienne une erreur 500.<httpErrors errorMode="DetailedLocalOnly"
. C'est l'équivalent ducustomErrors
mode. Options que vous avez:Custom
,Detailed
,DetailedLocalOnly
.Un bon article de blog qui m'a beaucoup aidé est: http://benfoster.io/blog/aspnet-mvc-custom-error-pages
la source
<customErrors>
contre<httpErrors>
<customErrors>
<httpErrors>
Source citée: Custom 404 et pages d'erreur dans ASP.NET (excellent article)
ExecuteURL
sert du contenu dynamique tel qu'une page .aspx (lapath
valeur doit être une URL relative au serveur ):File
diffuse un fichier d'erreur personnalisé, tel qu'une page .html:Référence: Erreurs HTTP (www.iis.net)
pour plus de détails, lisez le lien www.iis.net ci-dessus
la source
it's no loger necesary to use customErrors
et la citation, c'est vraiment l'info que j'étais après :-)La section Erreurs de la configuration Web sert à fournir une approche personnalisée de gestion des erreurs http.Il y a deux sections, une customErrors dans la section system.web et une autre httpErrors dans la section system.webServer (comme indiqué ci-dessous)
customErrors: cette section était utilisée avant l'introduction d'IIS 7, IIS 6 5 et avant d'utiliser pleinement cette section pour gérer les erreurs http personnalisées en fonction du code d'état http.
httpErrors: IIS 7 et versions ultérieures utilisent cette section ainsi que la section customErrors pour gérer les erreurs http personnalisées en fonction de leurs extensions de fichier si l'extension de page est demandée, enregistrez-vous avec ISAPI dll (.aspx, ashx, .asmx, .svc, etc.) comme index.aspx puis IIS pick up setting from customeErrors section else it pick up setting from httpErrors (le mode hébergé IIS 7 doit être défini comme une ambiance intégrée et non classique)
Voici les exemples qui concernent le lien de vérification de la gestion des erreurs 404:
httperrors vs customerrors dans webconfig, iis, asp.net
la source