Application_Error在本地主机上呈现页面但不在生产中呈现(www)

时间:2014-07-06 22:24:13

标签: c# asp.net-mvc iis global-asax

我有一个Application_Error,它会呈现一个错误页面:

    private void Application_Error(object sender, EventArgs e)
    {

        Exception exception = Server.GetLastError();

        // A good location for any error logging, otherwise, do it inside of the error controller.

        Response.Clear();
        HttpException httpException = exception as HttpException;

        RouteData routeData = new RouteData();

        routeData.Values.Add("controller", "Error");
        routeData.Values.Add("action", "Index");

        // Clear the error, otherwise, we will always get the default error page.
        Server.ClearError();

        routeData.Values.Add("id", httpException.GetHttpCode());
        Response.StatusCode = httpException.GetHttpCode();
        Context.Response.ContentType = "text/html";

        // Call the controller with the route
        IController errorController = new ErrorController();
        errorController.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));


    }

无缝地在我的本地计算机上运行。当我将它推向生产时,它呈现常规的asp 404页面而不是控制器应该服务的页面。

即使在生产服务器上,当我使用localhost代替www时也可以。

我应该补充一点,我在web.config中没有针对客户错误的配置。我试着把它们关掉,这也没有帮助。

对我来说,似乎是造成这种情况的网址,但无法弄清楚原因/方法。

知道如何解决问题吗?

1 个答案:

答案 0 :(得分:2)

在您的Application_Error方法中,请尝试添加此...

Response.TrySkipIisCustomErrors = true;