<httperrors> </httperrors>的配置示例

时间:2011-10-11 16:20:52

标签: asp.net iis-7 web-config

我在IIS 7上本地运行的Asp.Net 4中有一个Web应用程序。 我需要显示自定义页面(404)和500而不是IIS的默认页面。 在Web.Config中使用此httpErrors

<system.webServer>
    <httpErrors>

我的网站位于

C:\inetpub\wwwroot\mysite\

我的自定义错误页面:

C:\inetpub\wwwroot\mysite\ErrorPages\404.htm
C:\inetpub\wwwroot\mysite\ErrorPages\505.htm

我不明白它是如何运作的。你能告诉我一个代码示例吗?

由于

2 个答案:

答案 0 :(得分:14)

我解决了这个问题。

<httpErrors errorMode="Custom">
    <remove statusCode="404" subStatusCode='-1' />
    <remove statusCode="500" subStatusCode='-1' />
    <error statusCode="404" path="/404.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL"  />
    <error statusCode="500" path="/500.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL" />
  </httpErrors>

这需要进入Web.config<configuration>&gt; <system.webServer>

e.g。

<configuration>
    <system.webServer>
        <httpErrors ...>
            // define errors in here ...
        </httpErrors>
    </system.webServer>
</configuration>

答案 1 :(得分:5)

这是一个例子,希望它有所帮助

<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="default.aspx">
<error statusCode="404" redirect="~/ErrorPages/404.htm"/>
<error statusCode="500" redirect="~/ErrorPages/505.htm"/>
</customErrors>
</system.web>

修改评论:以下是我认为您需要的示例

<configuration>
   <system.webServer>
      <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
         <remove statusCode="500" />
         <error statusCode="500"
            prefixLanguageFilePath="C:\Contoso\Content\errors"
            path="500.htm" />
       </httpErrors>
   </system.webServer>
</configuration>

http://www.iis.net/ConfigReference/system.webServer/httpErrors/error