笔记
我已经确定我在下面描述的问题是特定于加载文件中指定的 DLL 文件时遇到的错误web.config
。即使在出现错误的情况下,我也想呈现一个用户友好的web.config
错误。
尾注
当我的 ASP.Net 应用程序遇到服务器错误时,我希望它向用户显示自定义错误消息,而不是以下默认的可怕消息。
Server Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a "web.config" configuration file located in the root directory of the current web application. This <customErrors> tag should then have its "mode" attribute set to "Off".
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
Notes: The current error page you are seeing can be replaced by a custom error page by modifying the "defaultRedirect" attribute of the application's <customErrors> configuration tag to point to a custom error page URL.
<!-- Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
我编写了一个非常简单的 HTML 页面并将其放在我的应用程序的根目录中。它被称为MaintenancePage.htm。
我已将 web.config 文件设置为以下内容:
<customErrors mode="RemoteOnly" defaultRedirect="MaintenancePage.htm">
<error statusCode="404" redirect="PageNotFound.aspx" />
</customErrors>
我也试过~/MaintenancePage.htm
and http://[mysite]/MaintenancePage.htm
。这些选项似乎都不起作用。
我测试的方法是重命名我的项目所依赖的 DLL,然后在 Web 浏览器中加载该站点。我希望既然有一个错误和一个defaultRedirect
集合,那么显示错误页面应该没有问题,但是,我显然错了。
我已经搜索过这个问题,似乎大多数人都试图重定向到一个aspx
页面,并且在这样做时遇到了错误。许多人甚至报告说他们无法将aspx
页面加载为defaultRedirect
,但他们可以html
加载页面。
我在这里做错了什么?
我应该注意,我正在从公司防火墙外部的不同网络进行测试,因此更改RemoteOnly
为On
不是文档中的问题。正如预期的那样,在测试中更改RemoteOnly
为On
没有效果。