加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 23:52:39 所属栏目:asp.Net 来源:网络整理
导读:我有一个Web API控制器POST方法,在本地和测试服务器上表现良好.如果一切顺利,那么返回: new HttpResponseMessage( HttpStatusCode.Created ) 如果出现问题,它返回: new HttpResponseMessageIEnumerablestring( usefulMessages,HttpStatusCode.BadRequest )
我有一个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;

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读