我有一个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
中没有针对客户错误的配置。我试着把它们关掉,这也没有帮助。
对我来说,似乎是造成这种情况的网址,但无法弄清楚原因/方法。
知道如何解决问题吗?
答案 0 :(得分:2)
在您的Application_Error方法中,请尝试添加此...
Response.TrySkipIisCustomErrors = true;