mvc ajax错误500,关于asp.net mvc:如何从ajax操作返回错误信息(作为错误!)?

我编写了一个实现IExceptionFilter接口的简单过滤器属性,该接口仅在ajax动作中发生异常时才处理异常。 网上有很多例子。 挑选其中任何一个。

但是,我添加了一行:

filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;

这是因为任何异常过滤器捕获确实是一个错误,我希望它是这样报告的。 其次,我只是不想在某种{success:success,data:data}对象中包含任何ajax响应。

现在问题是:在我的开发机器上,一切都运行得很完美:如果发生异常,客户端会让json描述问题; 如果不是 - 返回的数据是调用者预期的数据。 本地(谁在同一台机器上查看站点)和远程客户端。

但是当我在另一台服务器上部署应用程序时,只有json为本地客户端返回错误,对于其他所有人 - 它是标准错误html页面。 这是为什么? 两个站点上的 mode属性设置为RemoteOnly。

这是我如何解决它:

我在第二台计算机上启用了Failed Requests Tracing功能。 然后我运行相同的请求,应该在本地和远程机器上的json中返回错误信息。 这给了我两个日志文件。 我对它们进行了比较,发现它与它有关

263.  NOTIFY_MODULE_START ModuleName="CustomErrorModule", Notification="SEND_RESPONSE", fIsPostNotification="false" 09:05:49.998

264.  GENERAL_NOT_SEND_CUSTOM_ERROR Reason="EXISTINGRESPONSE_AUTO"

265.  NOTIFY_MODULE_END ModuleName="CustomErrorModule", Notification="SEND_RESPONSE", fIsPostNotificationEvent="false", NotificationStatus="NOTIFICATION_CONTINUE"

我是这样来的:

之后我还在两台机器上分析了machine.config。 在这件事上一无所获。 这意味着我仍然不知道为什么它首先表现不同。

有什么想法吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值