1

我已经设置并配置 ELMAH 以记录我正在处理的 ASP.NET MVC 项目中的所有错误。它将被一小群不需要了解太多的用户使用,所以每当出现任何类型的错误(404、InvalidOperation、Y2K ......任何事情!)我只想向他们展示一个通用的默认错误视图指示致电我们的服务台并坐好。

ELMAH 已启动并运行良好,我们的帮助台工作人员将使用它来诊断错误并根据需要记录/提升票证。我的问题是让我的全局错误页面显示。我正在使用此处发布的解决方案来确保 ELMAH 和 [HandleError] 可以很好地配合使用。

Web.config 设置如下:

<customErrors mode="On" />

如果我访问有 LINQ 错误(序列不包含元素)的http://application/Home/Index,那么我会从 /Shared/Error.aspx 看到我漂亮的通用错误视图,但如果我尝试访问http:// application/Fake/Broken这是一个 404 然后我得到通常的 ASP.NET

Server Error in '/' Application.
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

Requested URL: /Fake/Broken

不过,这两个错误都被 ELMAH 完美记录。

4

2 回答 2

2

如果您只是想显示一个通用错误页面,那么您可以指定页面本身:

<customErrors mode="On" defaultRedirect="error.htm" />

这将导致所有未处理的异常、未找到页面等显示您的“error.htm”。不过,您可以更具体地了解错误代码:

<customErrors mode="On">
  <error statusCode="404" redirect="notfound.htm"/>
</customErrors>
于 2009-11-09T14:14:06.933 回答
0

如果您使用的是 iis 7,则可能需要将其添加到您的

<system.webServer>

配置文件中的部分

<httpErrors errorMode="Custom" existingResponse="PassThrough" />
于 2009-06-24T16:12:06.547 回答