【发布时间】:2014-03-11 11:05:56
【问题描述】:
我有一个 MVC 4 应用程序并且我已经注册了一个异常过滤器:
Global.asax.cs:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
// Here my filter gets registered
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
FilterConfig.cs:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleUnhandledExceptionFilter());
}
}
HandleUnhandledExceptionFilter.cs:
public class HandleUnhandledExceptionFilter : IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
filterContext.HttpContext.Response.StatusCode = 500;
filterContext.HttpContext.Response.Write("An unknown error occured");
filterContext.ExceptionHandled = true;
}
}
注意,我不使用 WEB API 框架,但我使用 MVC 过滤器。
发生异常时,我想显示文本An unknown error occured。当我在本地执行站点时,这可以正常工作。当我发布站点时,将发布的文件复制到网络服务器并在我的机器(不是网络服务器)上浏览并得到一个接收,我没有看到文本 An unknown error occured。相反,我得到了错误页面的来源。所以我从字面上看是这样的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html .... etc.
首先我认为它可能与customErrors 有关,所以我在我的webconfig 中添加了一个customErrors 标签:
<customErrors mode="Off"></customErrors>
但不幸的是,这并没有奏效。所以我的问题是:我该怎么做才能显示我自己的错误消息?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-4