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

本文介绍一个关于IIS环境下web.config配置的经验问题。在IIS7.5中添加配置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) <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.0及IIS7.5的朋友们有帮助:)

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件,那么怎么才能让IIS支持.apk文件的下载呢? IIS服务器不能下
对于IIS报503的问题相信大家都很熟悉了,博客园以前也经常503,但这个问题不好排查,前几天我也为503问题烦恼,总结了一些排查思路和大家分享,但最终还没有解决问题,请大家有懂的也赶紧指点指点。 网上有人发贴说可能与应用程序池的进程回收设置有关,建议
window10 64系统在安装IIS URL重写模块2伪静态组件提示需要IIS7.0以上版本。 解决方法: 打开注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp 双击右边MajorVersion,默认的数值是a,修改成9,然后再安装 ,安装完成后,再把数值修改为a即可。
今天有个客户问我他的网址访问目录就打开网站出现Directory Listing Denied,其实就是没有设置默认页面的问题,一般情况下默认网页的名称都是index.html,index.htm,default.htm,default.html、index.php、default.php等等,一般不是index就是default,不是ht
摘要: 一、打开 `开始菜单` `服务器管理器` `管理` `添加角色和功能` 一、打开 开始菜单 服务器管理器 管理 添加角色和功能 二、选择 基于角色或基于功能的安装 ,单击下一步 三、选择 从服务器池中选择服务器 ,单击下一步 四、选择 Web服务器(IIS) ,为
使用Vista或Win7操作系统的用户在不断增加,用Win7旗舰版开发测试程序程序人员也与日俱增,Win7下测试程序时,如果程序出 错,IIS7会提示HTTP Error 500 - Internal Server Error (500 - 内部服务器错误) 的简单错误信息。这些简单信息对应用户来说比较友好