博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.Net customErrors与httpErrors的区别
阅读量:6315 次
发布时间:2019-06-22

本文共 1852 字,大约阅读时间需要 6 分钟。

customErrors

  • Asp.Net级别的错误处理程序,只处理Asp.Net应用抛出的异常(404,403,500。。)
  • 在IIS7+的服务器依然可用(IIS7之前就引进了)
  • 静态文件(如.jpg.htm.js等)不会被处理

httpErrors

  • IIS级别的错误信息处理程序,IIS根据请求指定错误页面
  • 自IIS7引进
  • 处理包括ASP.NET应用及ASP.NET之外的应用(ASP.NET能管的 它会管,ASP.NET不能管得它也管)
  • 所有的文件和URL都处理

从对比中能看出 在IIS7之后  就没必要再用customErrors了,一切httpErrors都可以办了。

 

 

其实还可以用一个clear标签代替多个remove。如下

Note:ExecuteURL 只能用于同一个应用下的ASP.NET文件,如果想要重定向到另一个应用,或者一个完全不一样的完整的URL,我们需要将responseMode设为Redirect。

现在通过不同的URL来看两者的区别

给Web应用定义如下配置

现在如果尝试访问以下链接,将会产生对应的错误

 
URL Error StatusCode
/aaaaaa  httpErrors  404
/aaaaaa.aspx customErrors  404
/aaaaaa.jpg httpErrors  404
/throw500.apx customErrors  500
/throw500 customErrors  500

 

 

 

 

 

 

  1. 一般情况 customErrors标签上的model属性设为RemoteOnly,httpErrors上的errorModel设为DetailedLocalOnly
  2. 如果你将某个页面的StatusCode设为500,不要忘了设置如下属性
context.Response.TrySkipIisCustomErrors = true;

 

 

以下是微软官网说明:

 

https://msdn.microsoft.com/zh-cn/library/system.web.httpresponse.tryskipiiscustomerrors.aspx

TrySkipIisCustomErrors 属性仅在您的应用程序承载在 IIS 7.0 中使用。 在 IIS 7.0 中的经典模式下运行时 TrySkipIisCustomErrors 属性的默认值是 true。 在集成模式下,运行时 TrySkipIisCustomErrors 属性的默认值是 false。

 

 

 

补充

errorMode有三个值,分别为Custom、DetailedLocalOnly、Detailed,意思为对用户与服务器端始终显示自定义页面、只能服务器端显示详细出错信息、对用户与服务器端始终显示详细出错信息。

responseMode有File、ExecuteUrl、Redirect三个层,分别表示使用服务器端静态文件、可执行的URL、URL转向。

注意:<httpErrors>与<customErrors>是不同的,前者主要用于处理http相关的错误信息,而后者主要是处理应用程序级的错误页转向。

 

 

<!-- 自定义错误信息 

设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。 
为每个要处理的错误添加 <error> 标记。 
"On" 始终显示自定义(友好的)信息。 
"Off" 始终显示详细的 ASP.NET 错误信息。 
"RemoteOnly" 只对不在本地 Web 服务器上运行的 
用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便 
不向远程客户端显示应用程序的详细信息。 
--> 

 

转载地址:http://lxkaa.baihongyu.com/

你可能感兴趣的文章
linux下的权限问题
查看>>
教你如何使用Flutter和原生App混合开发
查看>>
Spring Boot 整合redis
查看>>
CSS hover改变背景图片过渡动画生硬
查看>>
淘宝应对"双11"的技术架构分析
查看>>
订单的子单表格设置颜色
查看>>
Office365 Exchange Hybrid 番外篇 ADFS后端SQL群集(一)
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
lvs fullnat部署手册(三)rs内核加载toa篇
查看>>
C++策略模式
查看>>
我的友情链接
查看>>
oracle表分区详解
查看>>
网络编程中常见结构体
查看>>
SSL/TLS原理详解
查看>>
Docker 自定义SSH服务镜像
查看>>
JavaScript强化教程 —— Cocos2d-JS自动JSB绑定规则修改
查看>>
configure: error: in `/root/httpd-2.2.11/srclib/apr': c
查看>>
buildroot下查找外部编译器通过ext-toolchain-wrapper调用的参数
查看>>
MySQL Replication 主主配置详细说明
查看>>
Linux的任务调度
查看>>