我为 MVC 应用程序创建了自定义视图。
我让错误冒泡到 Globals.asax 文件中的 Application_Error 处理程序,并重定向到呈现这些视图的错误控制器:
protected void Application_Error(object sender, EventArgs eventArgs)
{
Exception exception = Server.GetLastError();
Response.Clear();
var httpException = exception as HttpException;
Response.TrySkipIisCustomErrors = true;
if (httpException != null)
{
switch (httpException.GetHttpCode())
{
case 404:
Server.ClearError();
Response.Redirect(UiConstants.PageNotFoundPage);
break;
case 500:
if (httpException.Message.Equals(UiConstants.NoSessionStateExceptionMsg, StringComparison.Ordinal))
{
Server.ClearError();
Response.Redirect(UiConstants.SessionNotAvailablePage);
}
else
{
Server.ClearError();
Response.Redirect(UiConstants.ServerErrorPage);
}
break;
default:
Server.ClearError();
Response.Redirect(UiConstants.ServerErrorPage);
break;
}
}
else
{
Server.ClearError();
Response.Redirect(UiConstants.ServerErrorPage);
}
}
在我的开发环境(VS Dev Web Server)中,这是按设计工作的。当我将它部署到测试服务器时,会显示库存的 IIS 错误网页,而不是我的视图。
路由路径正确即servername/StaticContent/PageNotFound
任何想法如何解决这个问题?是否有一些 IIS 设置这样做?