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) <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的朋友们有帮助:)

(0)

相关推荐

  • IIS 8.5下设置自定义404错误页

    IIS版本:IIS 8.5问题描述 搭建一个测试网站,总共就2个页面(index.php和404.php),默认首页为:index.php 当访问index.php和404.php的时候,IIS服务器能正常响应,说明在IIS 8.5中配置PHP环境没有出现问题. 访问index.php 访问404.php 另外,我的错误页配置结果如下: 正常情况下,当访问某个不存在的页面时(比如:127.0.0.1/aaa.php),此时,iis服务器发现aaa.php这个文件并不存在,所以,应该会请求404.

  • IIS部署asp.net报404错误的解决方法

    1).所建网站->(右键)权限->"ASP.NET计算机帐户"是否已添加. 2).所建网站->(右键)属性->ASP.NET选项卡->版本是否为2.0,不是则修改为2.0; 3).IIS->WEB服务扩展中->ASP.NETV2.0是否被禁止,若为禁止状态则启动; 4).所建网站->(右键)属性->主目录->执行权限是否为:纯脚本;应用程序池是否设置: 5).所建网站->(右键)属性->ASP.NET选项卡->

  • IIS设置404页面图文教程(选择URL还是文件 )

    下面侯庆龙说明放置404页代码一些方方面面,希望大家能用到网站建设当中: <META http-equiv=refresh content="3; url=http://www.iglee.net/">,把其中网址改成你的想要转接的网址.网页即可. 提供一种最实用而且最通用的代码,可以用于html,asp,php中,把这代码加到的与之间即可,代码如下 404页会不会被搜索引擎认为作弊 答案:否,当你网页有少部分消失采用404页跳转,搜索引擎是不会认为作弊的,因为这是符合正常

  • IIS 7.5 HTTP 错误 404.3 - Not Found错误的解决方法

    iis7.5安装默认是不安装asp/php/jsp支持的 解决办法也很简单 再次安装IIS功能 在 万维网服务-应用程序开发上勾选asp 就万事大吉了... 故障现象: IIS 7.5 下载文件遇到 404.3 404.3可能是由于当前请求的文件的后缀未知造成的.某些不太常用的后缀在IIS中没有设置,而文件的确存在于服务器上,此时如果客户端请求下载该文件,可能会遇到此错误. 可以通过设置IIS上的MIME来解决这个问题. 1. 双击IIS中的MIME Type 2. 单击右侧Action中的Ad

  • IIS发布以后handle文件找不到404错误的解决方法

    昨天碰到一个奇怪问题,开发环境没有问题,发布到IIS7.5以后,保存操作不能成功,跟踪发现,是handle方法找不到,抛错. 想了很多方法,最后把怀疑是GET方式和客户数据引起的问题,改成POST方式以后,问题解决了. 在此,再温习一下GET和POST的区别: 1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP post机制,将表单内各个字

  • asp.net 利用IIS的404错误将文件重写成目录的简单方法

    例如:http:/www.jb51.net/8888/ 该页面是由http://www.jb51.net/ArticleShow.aspx?id=8888 重写而来. 具体实现方法: 利用IIS的404错误来实现 "HTTP 404 - 未找到文件"可能是大家经常看到并且比较不喜欢的一个错误,可是很好的利用这个错误却可以给 网页设计带来很好的效果,本文就是利用404来实现对文件的重新. 具体步骤: 1.先建立一个页面,比如叫Error.aspx,放在网站根目录,在Error.aspx里

  • IIS下自定义404页面返回200状态码的严重性及解决方法

    在了解404页面前,先给大家了解一下几个常见的HTTP状态码.* 404 : 请求的网页不存在(不排除日后该链接有效的可能性):* 410 : 请求的网页不存在(永久):* 200 : 服务器成功返回网页* 302 : 网址临时重定向(跳转)* 301 : 网址永久重定向* 403 : 拒绝访问* 500 : 内部错误 当访问一个不存在的页面时会返回404状态码,告诉搜索引擎这个页面不存在或者已经删除.默认情况下没做自定义404页面时,访问一个不存在的页面会如下图所示 出现这样的页面无论是对用户

  • IIS6上配置404页面的图文教程(url+文件)

    首先先说明下消息类型: url 与 文件. 一般情况下如果选择了url那么返回的404页面是200状态(也就是返回给搜索引擎是正常存在的页面),而选择了文件那么才是告诉搜索页引擎没有找到页面,返回的是400页面内容,这样对搜索引擎来税具有较好的友好度,其实我们现在大多数都是使用文件格式. 推荐使用 文件啊 步骤/方法 打开IIS 找到你的网站,点右键,选择属性 选择"自定义错误"标签页,找到404的那一项,点"编辑属性"按钮 在"消息类型"里选&

  • win2003 iis 404 设置方法与小技巧

    打开IIS管理器 =>点击要设置自定义404网站的属性=>点击"自定义错误"选项=>选中404页=>选中并打开编辑属性=>按浏览选择你要的404页=>按确定保存退出=>错误页面生效 正常这样是可以的,但有些2003系统的IIS设置就是不行,就可以用到下面的方法: 错误信息 设置成 URL 格式为 /404.htm 把 404.htm 放在网站跟目录下 或者 /文件夹/404.htm 把 404.htm 放在网站/文件夹/目录下

  • win2008 r2中IIS7.5及以上设置404错误页面的正确方法

    1.进入windows 2008服务器,打开IIS Manager,点击需要设置404错误页面的网站.进入windows 2008服务器,打开IIS Manager,点击需要设置404错误页面的网站. 2.在IIS右侧选择错误页这项,双击打开. 3.出现错误页设置页面,今天我们这边只说明一下404如何设置,诸如500.503等这里先不考虑.双击404错误页面那项,或选中404那项点击右侧的编辑按钮 4.出现404错误页面设置选项,笔者选择的是第一个方法,输入404静态页面文件的完整路径,点击下方

  • win8下IIS 8.5下设置404错误页

    IIS版本:IIS 8.5问题描述 搭建一个测试网站,总共就2个页面(index.php和404.php),默认首页为:index.php 当访问index.php和404.php的时候,IIS服务器能正常响应,说明在IIS 8.5中配置PHP环境没有出现问题.访问index.php 访问404.php 另外,我的错误页配置结果如下: 正常情况下,当访问某个不存在的页面时(比如:127.0.0.1/aaa.php),此时,iis服务器发现aaa.php这个文件并不存在,所以,应该会请求404.p

  • IIS自定义404错误页避免暴露.NET网站路径信息

    再输入非.aspx页面时,显示默认404页面,暴露站点路径信息. 解决办法: 1.自定义错误页(eg:error.htm),放在站点根目录. 2.打开"错误页",右键"编辑",如图: 3."错误页",右键"编辑功能设置",如图: 如果没变化的话重启一下IIS即可.

  • IIS 8.5下设置404错误页图文教程

    问题描述 搭建一个测试网站,总共就2个页面(index.php和404.php),默认首页为:index.php 当访问index.php和404.php的时候,IIS服务器能正常响应,说明在IIS 8.5中配置PHP环境没有出现问题. 访问index.php 访问404.php 另外,我的错误页配置结果如下: 正常情况下,当访问某个不存在的页面时(比如:127.0.0.1/aaa.php),此时,iis服务器发现aaa.php这个文件并不存在,所以,应该会请求404.php 也就是:127.0

  • IIS HTTP 错误 404.17 - Not Found 解决方法

    错误提示如下图: 出现这种情况的原因通常是因为先安装了Framework,后安装的IIS: 运行cmd,输入: 复制代码 代码如下: C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_regiis -i 注:C:\Windows\Microsoft.NET\Framework\V4.0.30319\   是 netframework安装对应的路径: 如下图: 注册成功后,重启一下iis, 理论上应可以解决导致404.17 not found

随机推荐