Application_Error不会在Server上触发

时间:2012-04-03 18:29:59

标签: c# asp.net-mvc iis routing

我在Global.asax文件中有以下代码:

protected void Application_Error()
{
    var exception = Server.GetLastError();
    Response.Clear();
    Server.ClearError();

    //processing

    Response.RedirectPermanent("url processed"));
}

在localhost上运行正常,做这样的事情:

我访问“www.somesite.com/uk/en-GB”,并且因为此路由未注册,Application_Error“捕获”错误,处理它并重定向到正确的路由“www.somesite.com / EN-GB”。 (如上面的代码Global.asax所示)

但是在服务器上,我尝试访问“www.somesite.com/uk/en-GB”,并且它没有转到Application_Error,而是显示这个错误:

http://codinghorror.typepad.com/.a/6a0120a85dcdae970b0120a86d7d7d970b-pi

任何人都知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您没有收到错误消息。你有一个404响应代码。您需要以不同方式处理该场景。 Application_Error仅捕获未捕获的异常。

答案 1 :(得分:0)

我正在运行IIS 6,我发现通过将其添加到system.web下的Web.Config文件中可以轻松解决此问题:

    <customErrors mode="Off">
    </customErrors>

这将允许Application_Error中的代码执行。