2

我有一个使用 Visual Studio 2015 中的“Azure API 应用程序预览”模板的 ASP.net Web API,我将其部署到 Azure API 应用程序。

在我的应用程序中,我使用模型属性验证和本文中描述的操作过滤器来调用ModelState.isValid所有传入的 http 请求,并在 http 400 响应中返回带有错误的模型状态。

这一切都在本地完美运行,并且确实在部署到 Azure 网站时,但是当将相同的代码部署到 Azure API APP 时,请求似乎被重新包装在新的响应中(见下文,它似乎正在添加状态和 json 的源字段)以及从请求中删除的模型状态错误的结果。

有没有办法可以强制 API 应用程序将这些包含在重新包装的响应中,或者这确实是一个错误?没有潜在错误的 400 响应对任何 API 用户都没有多大用处。我在 MSDN 论坛上看到过其他人遇到同样的问题。

本地结果和 Azure 网站上的结果

HTTP/1.1 400 Bad Request
{
  "Message":"The request is invalid.",
  "Errors":
       {
         "InitialAmount":["The value 'a' is not valid for InitialAmount.",
                "The InitialAmount field is required."]
       }
}

结果 Azure Api 应用程序

HTTP/1.1 400 Bad Request
{
  "status": 400,
  "source": "https://MYAPIAPP.azurewebsites.net/api/Test?InitialAmount=a",
  "message": "The request is invalid."
}
4

0 回答 0