我有一个 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 for Web API 的等价物)?不仅响应数据中省略了错误消息,而且还发明了短语“Bad Request”来代替。
有任何想法吗?谢谢。