【发布时间】:2011-06-09 00:39:10
【问题描述】:
我正在使用 ASP.NET MVC,我的应用程序主要使用 JSON 查询。
如果服务器端出现问题,我会看到标准的“500 Internal Server Error”页面。这其实很好。但我想在响应标头中再添加一个字段:异常消息。
我的想法是在控制器中添加这个覆盖:
protected override void OnException(ExceptionContext filterContext)
{
base.OnException(filterContext);
filterContext.RequestContext.HttpContext.Response.AppendHeader("Exception", filterContext.Exception.Message);
filterContext.RequestContext.HttpContext.Response.TrySkipIisCustomErrors = true;
}
很遗憾,我没有在响应标头中获得新字段。
但是,如果在我的控制器的方法上执行此操作,它会起作用:
try
{
}
catch (Exception ex)
{
Response.Headers.Add("Exception", ex.Message);
Response.StatusCode = (int)HttpStatusCode.InternalServerError;
return Content(ex.Message);
}
它有效,但不是很整洁。有没有办法可以轻松做到这一点?谢谢!
【问题讨论】:
标签: .net asp.net-mvc json asp.net-mvc-2 http-headers