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 pour utiliser chaque section?
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 pour utiliser chaque section?
Je pense que la réponse de la Pure.Krome n'est pas complète ou mayby, même erronée, à quelques détails.
Le customErrors attribut est utilisé lorsque l' .net code est en train de lancer une exception (404, 403, 500, etc) et la httpErrors attribut est utilisé lorsque l'IIS lui-même est en train de lancer une exception.
Ainsi, par exemple, j'ai une simple application web mvc, j'définir la configuration suivante:
<system.web>
<customErrors mode="On" defaultRedirect="Error.html">
<error statusCode="403" redirect="/Error403" />
<error statusCode="404" redirect="/Error404" />
<error statusCode="500" redirect="/Error500" />
</customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL" >
<remove statusCode="403"/>
<remove statusCode="404"/>
<remove statusCode="500"/>
<error statusCode="403" responseMode="ExecuteURL" path="/Error403" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error404" />
<error statusCode="500" responseMode="ExecuteURL" path="/Error500" />
</httpErrors>
Maintenant, quand vous essayez l'url ci-après, ils vont produire les pages d'erreur suivantes
Lorsque vous utilisez la valeur par défaut des pages d'erreur, vous pouvez voir la diffence encore mieux. Le bleu de la page 404, c'est à partir de iis, le blanc de asp.net
p.s.: normalement, vous utilisez le mode=RemoteOnly & errorMode=DetailedLocalOnly
p.s.2: Lorsque vous spécifiez l'option redirectmode="ResponseRewrite" dans le customErrors balise et l'utilisation extensionless pages d'erreur, comme moi .net sera toujours réécriture d' /Error500.aspx, /Erro404.aspx etc. qui échoue et renvoie de nouveau une page d'erreur par défaut.
Avertissement: Ceci est de mon expérience et pas fait.
Les deux sont utilisés pour définir la gestion des erreurs pour un site web, mais les différents logiciels se réfère à différentes config éléments.
customErrors
sont un héritage (en arrière compatible) élément, utilisé par le Serveur de Développement Visual Studio (aka. VV ou de Cassini).
httpErrors
sont l'élément nouveau qui n'est utilisé que par IIS7.
Cela met en évidence le possible problème lors de l'élaboration de ASP.NET sites web tout en utilisant CIV au lieu de l'IIS local.
Aussi, reportez-vous à ce poste par moi-même sur la façon de gérer les messages d'erreur avec IIS7, si vous souhaitez avoir le plein contrôle de l'erreur de sortie.
VSDS
utilisation customErrors
IIS6
utilisation customErrors
IIS7
utilisation httpErrors
.et si vous développer avec VSDS
mais publier IIS7
, alors je suppose que u aurez besoin des deux.
<customErrors>
contre <httpErrors>
<customErrors>
<httpErrors>
Remarque: il n'est plus nécessaire d'utiliser
customErrors
Citation: 404 Personnalisée et des pages d'erreur dans ASP.NET (excellent article)
ExecuteURL
sert du contenu dynamique comme une .page aspx ( path
de la valeur doit être un serveur URL relative):
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="ExecuteURL" >
<remove statusCode="404"/>
<error statusCode="404" responseMode="ExecuteURL" path="/error.aspx" />
</httpErrors>
</system.webServer>
File
sert une erreur personnalisée de fichier, tel qu'un .page html:
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Auto" defaultResponseMode="File" >
<remove statusCode="404"/>
<error statusCode="404" path="404.html" />
</httpErrors>
</system.webServer>
Référence: Erreurs HTTP (www.iis.net)
pour plus de détails, consultez les www.iis.net lien ci-dessus
Les erreurs dans la section de configuration web est de fournir http personnalisé erreur de manipulation approche il y a deux sections, l'une customErrors à l'intérieur de la section système.web et un autre httpErrors à l'intérieur de la section système.serveur web (comme indiqué ci-dessous)
customErrors : Cette section est en cours d'utilisation avant d'IIS 7 introduit, IIS 5 et 6 avant d'utiliser pleinement cette section pour le traitement personnalisé des erreurs http, selon le code d'état http.
httpErrors : IIS 7 et de les utiliser plus tard cette section ainsi que customErrors section pour gérer http personnalisé les erreurs de leurs extensions de fichier si la page demandée extension de registre avec dll ISAPI (.aspx, ashx, .asmx, .svc etc) comme indice.aspx IIS ramasser réglage de customeErrors section autre chose, elle ramasser réglage de httpErrors (IIS 7 mode hébergé doit être intégrée de l'humeur non classique)
ci-dessous sont des exemples qui est de 404 erreur de manipulation de vérification de lien :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.