关于IIS7.5下的web.config 404 配置的一些问题
本文介绍一个关于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)<httpErrors> ----相当于<system.web>中的<customError>下的<error>
以上三点中,如果你的程序中有自定义的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.0及IIS7.5的朋友们有帮助:)
关于IIS7.5下的web.config 404 配置的一些问题的更多相关文章
- [转]关于IIS7.5下的web.config 404 配置的一些问题
本文转自:http://www.codesky.net/article/201103/161589.html 本文介绍一个关于IIS环境下web.config配置的经验问题.在IIS7.5中添加配置4 ...
- IIS7.5下的web.config 404应该如何配置
IIS环境下web.config的配置的问题,在IIS7.5中添加配置404页面时遇到了一些问题,记录如下: 一开始在<customError>下的<error>节点配置404 ...
- .NET下对Web.config与App.Config的增删改操作的代码
把代码过程常用的内容做个收藏,下边代码段是关于 .NET下对Web.config与App.Config的增删改操作的代码. <?xml version="1.0" encod ...
- ASP.NET 多环境下配置文件web.config的灵活配置
调试,发布Asp.net程序的时候,开发环境和发布环境的Web.Config往往不同,比如connectionstring等.如果常常有调试,发布的需求,就需要常常修改web.config文件,这往往 ...
- ASP.NET 多环境下配置文件web.config的灵活配置---转
注意:本功能在.Net Core中已经不可用,暂时需手动修改web.config中的信息,或者将其设置在appsettings.XXX.json中,然后再使用web.config中的环境变量来制定使用 ...
- .NET Framework 项目多环境下配置文件web.config
解决jenkins自动构建发布的问题,统一从git/svn库中获取项目文件,根据不同配置编译发布到多个运行环境中. 转自:https://www.cnblogs.com/hugogoos/p/6426 ...
- c# MVC在WEB.Config中配置MIME
在IIS中,默认没有添加.json格式的MIME,所有无法读取服务器中的.json格式的文件,返回结果404 方式一:在IIS中手动添加MIME 1.点击MIME进入MIME列表 2.添加MIME 3 ...
- HttpModule在Web.config的配置和动态配置
学习笔记 ASP.Net处理Http Request时,使用Pipeline(管道)方式,由各个HttpModule对请求进行处理,然后到达 HttpHandler,HttpHandler处理完之后, ...
- Web.Config Transformation配置灵活的配置文件
使用Web.Config Transformation配置灵活的配置文件 发布Asp.net程序的时候,开发环境和发布环境的Web.Config往往不同,比如connectionstring等.如果常 ...
随机推荐
- .net 将xml转换成DateSet
/// <summary> /// 将XML字符串转换成DATASET /// </summary> /// <param name="xmlStr" ...
- windows新的数据类型
1.简单重定义的 如LPCSTR只字符串,只是名字不同 2.句柄类型 H开头的句柄 3.结构体类型 如对话框 4.重新更名一方面为了32位->64位升级时带来的麻烦 typedef unsign ...
- jquery navi
/// <reference path="../global.js" /> /********************************************* ...
- Matrix Power Series(POJ 3233 构造新矩阵求解+ 快速矩阵幂)
题目大意:给定A,k,m(取模),求解S = A + A2 + A3 + … + Ak. 思路:此题为求解幂的和,一开始直接一个个乘,TLE.时间消耗在累加上.此处巧妙构造新矩阵 p= A 0 ...
- editor.md实现Markdown编辑器
editor.md实现Markdown编辑器 Markdown和Editor.md简介 Markdwon编辑器在技术工作者圈子中已经越来越流行,简单的语法,统一的格式,强大的扩展功能,最重要的是:你可 ...
- Spark学习笔记-如何运行wordcount(使用jar包)
IDE:eclipse Spark:spark-1.1.0-bin-hadoop2.4 scala:2.10.4 创建scala工程,编写wordcount程序如下 package com.luoga ...
- 原 iOS面试题收集
原 iOS面试题收集 发表于2年前(2013-07-22 13:47) 阅读(369) | 评论(0) 4人收藏此文章, 我要收藏 赞0 听云性能监测产品App.Server.CDN免费试用,绑定 ...
- AFNetworking 官方文档
AFNetworking Version Minimum iOS Target Minimum OS X Target Notes 2.x iOS 6 OS X 10.8 Xcode 5 is req ...
- YII CDbCriteria总结
$criteria = new CDbCriteria; //$criteria->alias = 't'; //查询该表 $criteria->addInCondition('id', ...
- VirtualBox修改虚拟盘路径
VirtualBox虚拟盘路径默认是存在C盘的,而当我们发现C盘不够用的时候,想转移就感觉有点麻烦了,现在给大家介绍一个简单又使用的方法. 第一步:到默认目录C:\Users\Administrato ...