IIS环境下web.config的配置的问题,在IIS7.5中添加配置404页面时遇到了一些问题,记录如下:

一开始在<customError>下的<error>节点配置404不起作用,由于程序运行在IIS7.5集成模式下,经过MSDN和GOOGLE,发现需要在<system.webServer>节点中配置。

我们知道<system.web>节点是iis7.0之前版本的主要配置节点,由于在II7.0以后IIS管道处理与ASP.NET管道处理进行了集成,这样提高了ASP.NET的处理性能,具体这方面的资料请GOOGLE,问题随之而来,新增加的

<system.webServer>节点中需要进行哪些修改以程序在IIS7的集成模式下能完全生效呢,主要包含以下几个方面:

(1) <modules> -----相当于<system.web>中的<httpModules>

(2) <handlers> -----相当于<system.web>中的<httpHandlers>

(3) <customError>下的<error>----相当于<system.web>中的<httpErrors>

以上三点中,如果你的程序中有自定义的httpModules或者httpHandlers的话,那么第一点和第二点非常重要,具体资料请MSDN明白了这些,配置也就不难了,如下:

<httpErrors errorMode="DetailedLocalOnly">

<remove statusCode="404"/>

<error statusCode="404" path="/404.htm" responseMode="ExecuteURL"/>

</httpErrors>

补充说明:

errorMode有三个值,分别为Custom、DetailedLocalOnly、Detailed

意思为对用户与服务器端始终显示自定义页面、只能服务器端显示详细出错信息、对用户与服务器端始终显示详细出错信息。

responseMode有File、ExecuteUrl、Redirect三个层,

分别表示使用服务器端静态文件、可执行的URL、URL转向。

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

附<customErrors>的一些细节说明:

同样,如果Application_Error和<customerErrors>同时存在,也存在执行顺序的问题。

因为优先级Application_Error事件> <customErrors>配置项,所以发生应用程序级错误时,优先执行Application_Error事件中的代码,如果Application_Error事件中调用了Server.ClearError()函数,

<customerErrors>配置节中的defaultRedirect不起作用,因为Exception已经被清除;

如果Application_Error事件中没用调用了Server.ClearError()函数,错误页会重新定位到defaultRedict指定的URL页面,为用户显示友好出错信息。

通过对.NET提供的以上四种错误处理机制的分析,我们可以把它们从不同的角度分类,便于我们理解和使用。

1.从功能上分类:

用于异常处理(Handling exceptions)是Page_Error事件和Application_Error事件;

用户错误页面重定向(Redirecting the user to an error page)的是 ErrorPage属性 和 <customErrors>配置项。

2.从错误处理的范围分类:

用于页面级(Page level)错误处理的是Page_Error事件 和 ErrorPage属性;

用于应用程序级(Application level)错误处理的是Application_Error事件 和 <customErrors>配置项。

IIS7.5下的web.config 404应该如何配置的更多相关文章

  1. [转]关于IIS7.5下的web.config 404 配置的一些问题

    本文转自:http://www.codesky.net/article/201103/161589.html 本文介绍一个关于IIS环境下web.config配置的经验问题.在IIS7.5中添加配置4 ...

  2. 关于IIS7.5下的web.config 404 配置的一些问题

    本文介绍一个关于IIS环境下web.config配置的经验问题.在IIS7.5中添加配置404页面时遇到了一些问题,记录如下: 一开始在<customError>下的<error&g ...

  3. .NET下对Web.config与App.Config的增删改操作的代码

    把代码过程常用的内容做个收藏,下边代码段是关于 .NET下对Web.config与App.Config的增删改操作的代码. <?xml version="1.0" encod ...

  4. App.config和Web.config配置文件的自定义配置节点

    前言 昨天修改代码发现了一个问题,由于自己要在WCF服务接口中添加了一个方法,那么在相应调用的地方进行更新服务就可以了,不料意外发生了,竟然无法更新.左查右查终于发现了问题.App.config配置文 ...

  5. 加密web.config中的邮件配置mailSettings

    加密: 在命令提示符下键入: aspnet_regiis -pef connectionStrings 要加密的web.config完整路经 演示样例:C:\Program Files (x86)\M ...

  6. 释放SQL Server占用的内存 .Net 读取xml UrlReWriter 在web.config中简单的配置

    释放SQL Server占用的内存   由于Sql Server对于系统内存的管理策略是有多少占多少,除非系统内存不够用了(大约到剩余内存为4M左右),Sql Server才会释放一点点内存.所以很多 ...

  7. [转]通过继承ConfigurationSection,在web.config中增加自定义配置

    本文转自:http://www.blue1000.com/bkhtml/2008-02/55810.htm 前几天写了一篇使用IConfigurationSectionHandler在web.conf ...

  8. 通过Web.config中的configSections配置自己系统的全局常量

    通过Web.config中的configSections配置自己系统的全局常量 随着系统的庞大,你的全局信息保存在appsitting里可能会比较乱,不如为模块写个自定义的全局常量吧 首先在Web.C ...

  9. IIS7/8下提示 HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求

    IIS7的设置和IIS6有很多不同之处,这里提到的的是一个上传附件大小设置的问题. HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 原因:Web ...

随机推荐

  1. session和xsrf

    1.pip install pycket 2.pip install redis 防止xsrf攻击只需在模板form标签加入: {% module xsrf_form_html() %} <!D ...

  2. [置顶] Linux 虚拟地址与物理地址的映射关系分析【转】

    转自:http://blog.csdn.net/ordeder/article/details/41630945 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文 ...

  3. J.U.C并发框架源码阅读(十三)ThreadPoolExecutor

    基于版本jdk1.7.0_80 java.util.concurrent.ThreadPoolExecutor 代码如下 /* * ORACLE PROPRIETARY/CONFIDENTIAL. U ...

  4. Web开发之编码与解码、签名、加密与解密

    在Web开发中,编码与解码.签名.加密与解密是非常常见的问题.本文不会介绍具体实例,而是介绍这些的原理.用途与区别.一.编码与解码        在Web开发中,需要通过URL的query参数来传递数 ...

  5. ST表【p1311】 选择客栈

    题目描述 丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到 n 编号.每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0~k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均 ...

  6. ESLint 的使用和.eslintrc.js配置

    在团队协作中,为避免低级 Bug.产出风格统一的代码,会预先制定编码规范.使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量. ESLint 简介 ESLint 由 Ja ...

  7. Requirement Analysis

    BRD:Business Requirements Document,商业需求文档.这是产品声明周期中最早的问的文档,再早就应该是脑中的构思了,其内容涉及市场分析,销售策略,盈利预测等,通常是和老大们 ...

  8. Vue之$set使用

    背景 后端参与前端开发的小白,在开发过程中遇到了如下情况:当vue的data里边声明或者已经赋值过的对象或者数组(数组里边的值是对象)时,向对象中添加新的属性,如果更新此属性的值,是不会更新视图的. ...

  9. ASP.net MVC 基于角色的权限控制系统的实现

    一.引言 我们都知道ASP.net mvc权限控制都是实现AuthorizeAttribute类的OnAuthorization方法. 下面是最常见的实现方式: public class Custom ...

  10. 愤怒的TryCatch

    本文地址:http://www.cnblogs.com/likeli/p/5719230.html 前言 本文不提供任何搭梯子之类的内容,我在这里仅仅讨论网络爬虫遇到的IP封杀,然后使用Tor如何对抗 ...