customErrors和httpErrors有什么区别?

customErrors和httpErrors有什么区别?

是什么之间的区别customErrors,并httpErrors在ASP.NET MVC应用程序的web.config文件的部分?

使用每个部分的准则是什么?


呼如林
浏览 719回答 3
3回答

Helenr

* 2016年4月更新当.net代码抛出异常(404,403,500等)时使用customErrors属性,并且当IIS本身抛出异常时使用httpErrors属性。/ myfakeextensionslessurl - > httpErrors 404/myfakeaspsx.aspx - > customErrors 404/myfakeimage.jpg - > httpErrors 404/throw500.apx - > customErrors 500/ throw500 - > customErrors 500试图正确配置这一点有很多陷阱。因此,如果您正在寻找一个快速示例,您拥有的最佳选择是:示例1:使用html页面<system.web> &nbsp;&nbsp;<customErrors&nbsp;mode="RemoteOnly"&nbsp;defaultRedirect="/Error500.html"&nbsp;redirectMode="ResponseRewrite"> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="403"&nbsp;redirect="/Error403.html"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="404"&nbsp;redirect="/Error404.html"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="500"&nbsp;redirect="/Error500.html"&nbsp;/> &nbsp;&nbsp;</customErrors></system.web><system.webServer> &nbsp;&nbsp;<httpErrors&nbsp;errorMode="DetailedLocalOnly"&nbsp;existingResponse="Auto"> &nbsp;&nbsp;&nbsp;&nbsp;<remove&nbsp;statusCode="403"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<remove&nbsp;statusCode="404"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<remove&nbsp;statusCode="500"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="403"&nbsp;responseMode="File"&nbsp;path="Error403.html"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="404"&nbsp;responseMode="File"&nbsp;path="Error404.html"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="500"&nbsp;responseMode="File"&nbsp;path="Error500.html"&nbsp;/> &nbsp;&nbsp;</httpErrors></system.webServer>示例2:使用aspx页面<system.web> &nbsp;&nbsp;<customErrors&nbsp;mode="RemoteOnly"&nbsp;defaultRedirect="/Error500.html"&nbsp;redirectMode="ResponseRewrite"> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="403"&nbsp;redirect="/Error403.aspx"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="404"&nbsp;redirect="/Error404.aspx"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="500"&nbsp;redirect="/Error500.aspx"&nbsp;/> &nbsp;&nbsp;</customErrors></system.web><system.webServer> &nbsp;&nbsp;<httpErrors&nbsp;errorMode="DetailedLocalOnly"&nbsp;existingResponse="Auto"> &nbsp;&nbsp;&nbsp;&nbsp;<remove&nbsp;statusCode="403"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<remove&nbsp;statusCode="404"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<remove&nbsp;statusCode="500"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="403"&nbsp;responseMode="ExecuteURL"&nbsp;path="Error403.aspx"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="404"&nbsp;responseMode="ExecuteURL"&nbsp;path="Error404.aspx"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<error&nbsp;statusCode="500"&nbsp;responseMode="ExecuteURL"&nbsp;path="Error500.aspx"&nbsp;/> &nbsp;&nbsp;</httpErrors></system.webServer>在aspx错误页面中,您需要执行以下操作(示例404页面):<%&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;Response.StatusCode&nbsp;=&nbsp;404; &nbsp;&nbsp;&nbsp;&nbsp;Response.TrySkipIisCustomErrors&nbsp;=&nbsp;true; &nbsp;%>注意:无法在customErrors部分中使用扩展名更少的URL&nbsp;!。(没有黑客)一种解决方法是禁用自定义错误,让http错误处理自定义页面。朋友创建了这样的设置,当我找到一些时间时,我会分享代码。背景一个好的自定义错误页面将:在本地访问问题页面时显示真实的异常远程访问问题页面时显示自定义页面不会重定向,而只是显示错误页面内容(因为seo原因)将显示正确的状态代码所以要澄清我们的配置中的一些选项:<customErrors mode="RemoteOnly"。您可以指定在这里:On,Off,RemoteOnly。On&nbsp;=始终显示自定义错误页面Off&nbsp;=始终显示真实的错误RemoteOnly=在本地显示错误,但远程显示自定义错误页面。所以我们想要RemoteOnly声明1<customErrors redirectMode="ResponseRewrite"。你可以在这里指定:ResponseRedirect或ResponseRewrite。该ResponseRedirect模式将错误页面重定向到自定义错误页面。对于链接爬虫(SEO),这将导致302 - > 500,但您希望链接爬虫获得500错误。<httpErrors errorMode="DetailedLocalOnly"。这相当于customErrors模式。选择您有:Custom,Detailed,DetailedLocalOnly。一篇很有帮助我的博客文章是:http://benfoster.io/blog/aspnet-mvc-custom-error-pages
打开App,查看更多内容
随时随地看视频慕课网APP