asp.net – 在非开发环境中省略从Web API方法返回的错误消息

前端之家收集整理的这篇文章主要介绍了asp.net – 在非开发环境中省略从Web API方法返回的错误消息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Web API控制器POST方法,在本地和测试服务器上表现良好.如果一切顺利,那么返回:
new HttpResponseMessage( HttpStatusCode.Created )

如果出现问题,它返回:

new HttpResponseMessage<IEnumerable<string>>( usefulMessages,HttpStatusCode.BadRequest );

问题是,当我向测试服务器发出一个请求,导致错误时,我收到不好的请求代码,但我从来没有看到消息.如果我对本地机器提出完全相同的请求,我会看到消息.以下输出来自我自己的工具:

发送请求到我的本地机器我得到:

Status code: 400 (BadRequest)
Response data: ["Error message one","Error message two"]

发送请求到测试服务器我得到:

Status code: 400 (BadRequest)
Response data: Bad Request

正在运行的代码是完全一样的.数据库是一样的.除了为服务器请求提供服务之外,一切都是一样的.我甚至有代码给自己发送错误消息,所以我知道服务器正在生成正确的错误消息和行为正确.这可能是一个IIS的事情(像相当于customErrors = RemoteOnly的Web API)?错误消息不仅从响应数据中省略,而且发出短语“错误请求”来代替.

有任何想法吗?谢谢.

解决方法

看看 this MSDN post的HttpConfiguration.IncludesErrorDetailPolicy:

在您的Global.asax中:

var config = GlobalConfiguration.Configuration;
config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;

我已经使用此配置属性强制错误消息包含详细信息.

原文链接:https://www.f2er.com/aspnet/250990.html

猜你在找的asp.Net相关文章