【发布时间】:2015-01-10 07:31:49
【问题描述】:
我正在努力捕捉 IIS 本身引发的错误。我想记录一个 IIS 错误以及 MVC 错误。
我正在使用最新版本的ASP.NET MVC 5 并在IIS 7.5 中运行网站并在本地调试它。我正在调试Visual Studio 2013。
我正在尝试使用 web.config 中的 httpErrors 标记。我已经开始测试 404 错误,但同样适用于所有错误,500、403 等。我只需要一个起点并决定从 404 错误开始。
我的 web.config 中有以下配置:
<system.web>
<customErrors mode="Off" />
<system.web>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="Http404.html" responseMode="File" />
</httpErrors>
</system.webServer>
我尝试了以下 URL:
-
www.mywebsite.com/foo/bar- 错误被捕获,我的断点在 Application_Error 方法中被命中 -
www.mywebsite.com/test.html- 此文件不存在。它没有被我的 Application_Error 方法捕获,所以我无法记录它。显示正确的错误页面,同上
这就是我的 Application_Error 方法中的内容:
protected void Application_Error(object sender, EventArgs e)
{
// I have minimal code here
// First want to see if I can capture IIS errors here
Exception exception = Server.GetLastError();
HttpException httpException = exception as HttpException;
}
如果在 Application_Error 方法中没有捕获到 IIS 错误,我该如何记录它?
我也在action方法中尝试过这个,我的Application_Error方法也没有捕获到,但是显示了正确的错误页面:
public ActionResult Index()
{
return HttpNotFound();
}
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4