当前位置:  开发笔记 > 后端 > 正文

customErrors和httpErrors有什么区别?

如何解决《customErrors和httpErrors有什么区别?》经验,为你挑选了3个好方法。

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

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



1> Maarten Kief..:

*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页面


  
    
    
    
  


  
    
    
    
    
    
    
  

示例2:使用aspx页面


  
    
    
    
  


  
    
    
    
    
    
    
  

在aspx错误页面中,您需要执行以下操作(示例404页面):

<% 
    Response.StatusCode = 404;
    Response.TrySkipIisCustomErrors = true;
 %>

注意:无法在customErrors部分中使用扩展名更少的URL !.(没有黑客)

一种解决方法是禁用自定义错误,让http错误处理自定义页面.朋友创建了这样的设置,当我找到一些时间时,我会分享代码.

背景

一个好的自定义错误页面将:

    在本地访问问题页面时显示真实的异常

    远程访问问题页面时显示自定义页面

    不会重定向,而只是显示错误页面内容(因为seo原因)

    将显示正确的状态代码

所以要澄清我们的配置中的一些选项:

    .您可以指定在这里:On,Off,RemoteOnly.

    On =始终显示自定义错误页面

    Off =始终显示真实的错误

    RemoteOnly=在本地显示错误,但远程显示自定义错误页面.所以我们想要RemoteOnly声明1

    .你可以在这里指定:ResponseRedirectResponseRewrite.该ResponseRedirect模式将错误页面重定向到自定义错误页面.对于链接爬虫(SEO),这将导致302 - > 500,但您希望链接爬虫获得500错误.

    .这相当于customErrors模式.选择您有:Custom,Detailed,DetailedLocalOnly.

一篇很有帮助我的博客文章是:http://benfoster.io/blog/aspnet-mvc-custom-error-pages



2> Pure.Krome..:

免责声明:这是根据我的经验而未经证明的事实.

两者都用于定义网站的错误处理,但不同的软件指的是不同的配置元素.

customErrors 是Visual Studio开发服务器(又名VSDS或Cassini)使用的遗留(可向后兼容)元素.

httpErrors 是仅由IIS7使用的新元素.

这突出了在使用VSDS而不是本地IIS时开发ASP.NET网站时可能出现的问题.

另外,如果您希望完全控制错误输出,请参阅本文,了解如何使用IIS7处理错误消息.

摘要:

开发中VSDS使用customErrors

将站点发布到IIS6- 使用customErrors

将站点发布到IIS7- 使用httpErrors.

如果你发展,VSDS但发布到IIS7,那么我想你将需要两者.


customErrors适用于asp.net.httpErrors用于IIS7,因此处理不通过.net处理程序的内容(例如.png,.js等)如果您想要非网内容类型的错误页面,请使用IIS错误页面(IIS7的httpErrors) ,IIS6的UI.)
我建议在Visual Studio中安装和使用IIS 7 Express进行调试.与Cassini不同,它将使用与常规IIS 7相同的配置选项.

3> JohnB..:


仍然可以在IIS7 +中使用

为ASP.NET处理的请求指定自定义错误页面

仅处理ASP.NET应用程序中的请求

不处理静态文件,如HTML文件或目录("友好")URL

在IIS7中介绍

为IIS处理的请求指定自定义错误页面

处理ASP.NET应用程序内的请求和/或处理ASP.NET应用程序之外的请求*

处理所有文件和URL*

注意:不再需要使用 customErrors

引用来源:ASP.NET中的自定义404和错误页面(优秀文章)


ExecuteURL提供动态内容,例如.aspx页面(该path值必须是服务器相对URL):


  
    
    
  

File 提供自定义错误文件,例如.html页面:


  
    
    
  

参考:HTTP错误(www.iis.net)

有关更多详细信息,请阅读上面的www.iis.net链接


+1的注意事项`它不需要使用customErrors`和引用,这真的是我追求的信息:-)
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有