【发布时间】:2011-12-05 16:59:55
【问题描述】:
我编写了一个简单的过滤器属性,实现了 IExceptionFilter 接口,它只处理出现在 ajax 操作中的异常。网上有很多例子。选择其中任何一个。 但是,我添加了一行:
filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
这是因为任何异常过滤器捕获确实是一个错误,我希望它被这样报告。其次,我只是不想将任何 ajax 响应包装在某种 {success:success,data:data} 对象中。
现在问题来了:在我的开发机器上,一切正常:如果发生异常,客户端获取描述问题的 json;如果不是——返回的数据就是调用者所期望的。本地(从同一台机器上查看站点)和远程客户端。
但是当我在另一台服务器上部署应用程序时,错误只在本地客户端的 json 中返回,对于其他所有人 - 这是标准错误 html 页面。 为什么会这样? <customErrors /> 模式属性在两个站点上都设置为 RemoteOnly。
【问题讨论】:
标签: ajax asp.net-mvc error-handling