28

我有一个 ASP.Net 网站,我想使用自定义错误页面。我将以下代码放入我的 web.config

<customErrors mode="On" defaultRedirect="~/error.aspx">
    <error statusCode="404" redirect="~/error.aspx" />
</customErrors>

问题是当我转到一个不存在的 URL 时,仍然使用 IIS 管理器中指定的 404 错误页面。

问题:如何让它使用我创建的 error.aspx 页面?为什么 IIS 管理器中的设置会覆盖 web.config?

4

5 回答 5

32

尝试这种方式,几乎相同..但这就是我所做的,并且正在工作。

<configuration>
    <system.web>
       <customErrors mode="On" defaultRedirect="apperror.aspx">
          <error statusCode="404" redirect="404.aspx" />
          <error statusCode="500" redirect="500.aspx" />
       </customErrors>
    </system.web>
</configuration> 

或在紧急需要时尝试从 IIS 设置中更改 404 错误页面。

于 2010-01-29T11:18:53.107 回答
9

有 2 种方法可以为 ASP.NET 站点配置自定义错误页面:

  1. Internet 信息服务 (IIS) 管理器 (GUI)
  2. web.config 文件

这篇文章解释了如何做每一个:

您的error.aspx页面未显示的原因可能是您的 web.config 中有错误。试试这个:

<configuration>
   <system.web>
      <customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
         <error statusCode="404" redirect="error.aspx"/>
      </customErrors>
   </system.web>
</configuration>

您可能需要确保Error PagesIIS Manager - Feature Delegation中设置为Read/Write

IIS 管理器:功能委派面板

此外,此答案可能会帮助您配置 web.config 文件:

于 2014-08-01T15:09:07.290 回答
3
<customErrors defaultRedirect="~/404.aspx" mode="On">
    <error statusCode="404" redirect="~/404.aspx"/>
</customErrors>

如果文件扩展名已知(.html、.aspx 等),上面的代码仅适用于“Page Not Found Error-404”

除此之外,您还设置了扩展未知或不正确的客户错误为

.aspwx.vivaldo。您必须在其中添加httperrors设置web.config

<httpErrors  errorMode="Custom"> 
       <error statusCode="404" prefixLanguageFilePath="" path="/404.aspx"         responseMode="Redirect" />
</httpErrors>
<modules runAllManagedModulesForAllRequests="true"/>

它必须在<system.webServer> </system.webServer>

于 2014-01-28T13:39:11.900 回答
1
<system.webServer>     
<httpErrors errorMode="DetailedLocalOnly">
        <remove statusCode="404" subStatusCode="-1" />
        <error statusCode="404" prefixLanguageFilePath="" path="your page" responseMode="Redirect" />
    </httpErrors>
</system.webServer>
于 2018-04-09T13:55:30.453 回答
-2

您的结束标签中是否存在拼写错误,即:

</CustomErrors> instead of </CustomError>?
于 2019-05-02T22:45:46.200 回答