我有一个ASP.NET MVC3应用程序,它使用JSON与Flash UI进行通信。
我使用ActionFilterAttribute来处理JSON异常(来自ASP.NET MVC 2中的Handle JSON Exceptions:http://www.dotnetcurry.com/ShowArticle.aspx?ID=496):
public class HandleJsonExceptionAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.Exception != null)
{
filterContext.HttpContext.Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError;
filterContext.Result = new JsonResult()
{
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new
{
filterContext.Exception.Message,
}
};
filterContext.ExceptionHandled = true;
}
}
}
在localhost上执行时可以正常工作,来自fiddler的详细信息:
HTTP/1.1 500 Internal Server Error
Cache-Control: private
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 11 Apr 2011 19:05:21 GMT
Content-Length: 34
{"Message":"No está autenticado"}
但是,当从远程客户端执行时,例如在LAN上,我得到“Content-Type:text / html”中的响应,而不是“Content-Type:application / json;”并且内容是标准的html错误页面:
500 - 内部服务器错误。 您正在查找的资源存在问题,无法显示。
HTTP/1.1 500 Internal Server Error
Cache-Control: private
Content-Type: text/html
Server: Microsoft-IIS/7.5
X-AspNetMvc-Version: 3.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 11 Apr 2011 19:07:53 GMT
Content-Length: 1208
我需要配置什么或哪些地方来获取远程请求的JSON响应?
我需要flash UI接收http 500错误,但是使用json消息而不是html。