您现在的位置: 365建站网 > 365学习 > IIS Web.Config中customErrors的使用方法(mode=On|Off|RemoteOnly)

IIS Web.Config中customErrors的使用方法(mode=On|Off|RemoteOnly)

文章来源:365jz.com     点击数:2314    更新时间:2017-12-10 15:21   参与评论

在Web.Config配置文件中,customErrors元素提供有关ASP.NET 应用程序自定义错误消息的信息。

先看一下配置结构的示例:

<configuration>
<system.web>
<customErrors>

<customErrors defaultRedirect="url" mode="On|Off|RemoteOnly">
<error statusCode="statuscode" redirect="url"/>
</customErrors>
必需的属性
属性 选项 描述
Mode 指定启用、禁用或仅对远程客户端显示自定义错误。
On 指定启用自定义错误。如果没有指定 defaultRedirect,用户将看到一般性错误。
Off 指定禁用自定义错误。这允许显示详细的错误。
RemoteOnly 指定仅向远程客户端端显示自定义错误,并向本地主机显示 ASP.NET 错误。这是默认值。

可选的属性
属性 描述
defaultRedirect 指定发生错误时浏览器指向的默认 URL。如果没有指定 defaultRedirect,则会显示一般性错误。URL 既可以是绝对的(例如 http://www.***.com/ErrorPage.htm),也可以是相对的。相对 URL(如 /ErrorPage.htm)是相对于指定 defaultRedirect 的 Web.config 文件而言的,而不是针对产生错误的网页。以波形符 (~) 开头的 URL(如 ~/ErrorPage.htm)表示所指定的 URL 是相对于应用程序根路径而言的。

子标记
子标记 描述
<error> 错误子标记可以出现多次。每出现一次便定义了一个自定义错误条件。

注释
<customErrors> 元素不适用于在 XML Web 服务中出现的错误。

示例
下例指定了 ASP.NET 应用程序的错误处理页。

<configuration>
<system.web>
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly">
<error statusCode="500"
redirect="InternalError.htm"/>
</customErrors>
</system.web>
</configuration>

 

引用 权限问题 <customErrors> 标记的“mode”属性设置为“Off”。

权限问题标记的“mode”属性设置为“Off”。
说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止查看应用程序错误的详细信息。

详细信息: 若要使他人能够从本地服务器计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“RemoteOnly”。若要使他人能够在远程计算机上查看详细信息,请将“mode”设置为“Off”。


<!-- Web.Config 配置文件 -->

<configuration>
<system.web>
       <customErrors mode="RemoteOnly"/>
</system.web>
</configuration>


注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。


<!-- Web.Config 配置文件 -->

<configuration>
<system.web>
       <customErrors mode="On" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>


今天发现的问题是temp文件夹没有权限,network service权限加入解决问题

(用户没有访问该文件夹的权限,给该用户添加访问该文件夹的权限即可)

或者是下面的情况
原因分析:服务器设置权限问题

解决方案:在iis中找到asp.net网站 右键--权限 添加network service 用户到该目录就可以了

或者还有另外一个解决方案:

<customErrors> 标记的 mode 属性设置为 Off 。

 

把iis中设置asp.net版本为2.0
 

在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>配置项。

Win2008 iis7设置404错误返回状态200的解决办法:
http://www.365jz.com/article/19210

server 2008服务器中IIS7.0以上版设置404页面方法
http://www.365jz.com/article/19230
 

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (2314人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------