gpt4 book ai didi

asp.net - 非开发环境下Web API方法返回的错误信息被忽略

转载 作者:行者123 更新时间:2023-12-03 06:20:41 24 4
gpt4 key购买 nike

我有一个 Web API Controller POST 方法,该方法在本地和测试服务器上表现良好。如果一切顺利,它会返回:

new HttpResponseMessage( HttpStatusCode.Created )

如果出现问题,它会返回:

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

问题是,当我向测试服务器发出导致错误的请求时,我收到了错误的请求代码,但我从未看到这些消息。如果我向本地计算机发出完全相同的请求,我确实会看到这些消息。以下输出来 self 自己的工具:

向我的本地计算机发送请求,我得到:

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

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

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

正在运行的代码完全相同。数据库是一样的。除了服务请求的服务器之外,一切都是一样的。我什至有代码通过电子邮件向自己发送错误消息,这样我就知道服务器正在生成正确的错误消息并且行为正确。这可能是 IIS 的事情(就像 Web API 的 customErrors = RemoteOnly 的等效项)?响应数据中不仅省略了错误消息,还发明了短语“错误请求”来代替。

有什么想法吗?谢谢。

最佳答案

看看this MSDN post在 HttpConfiguration.InincludesErrorDetailPolicy 上:

在您的 Global.asax 中:

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

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

关于asp.net - 非开发环境下Web API方法返回的错误信息被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10246942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com