我有一个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?
答案 0 :(得分:26)
尝试这种方式,差不多......但这就是我所做的,并且正在工作。
<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错误页面,如果紧急需要。
答案 1 :(得分:7)
有两种方法可以为ASP.NET站点配置自定义错误页面:
本文介绍了如何执行每项操作:
您的 error.aspx 页面未显示的原因可能是因为您的web.config中存在错误。请尝试这样做:
<configuration>
<system.web>
<customErrors defaultRedirect="error.aspx" mode="RemoteOnly">
<error statusCode="404" redirect="error.aspx"/>
</customErrors>
</system.web>
</configuration>
您可能需要确保 IIS管理器 - 功能委派中的Error Pages
设置为读/写:
此外,这个答案可以帮助您配置web.config文件:
答案 2 :(得分:1)
<customErrors defaultRedirect="~/404.aspx" mode="On">
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
如果已知文件扩展名(.html,.aspx等),上面的代码仅适用于“找不到页面错误-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>
答案 3 :(得分:0)
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="your page" responseMode="Redirect" />
</httpErrors>
</system.webServer>
答案 4 :(得分:0)
您的结束标记中是否存在拼写错误,即:
</CustomErrors> instead of </CustomError>?