我们有一个 ASP.NET Web API 2 应用程序,它利用 HttpResponseMessage 作为返回值控制器,因为我们需要发回直接文本。我们的代码看起来像这样:
public HttpResponseMessage Submit(string data)
{
...do some sutff...
return new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent("Success", System.Text.Encoding.UTF8, "text/plain")
};
}
事情很好。在代码库的另一个区域,有一组方法需要重试,我们安装了 Polly nuget 包,在重试中添加,在 Visual Studio 中本地运行时一切看起来都很好。一旦我们部署 Azure,事情就变糟了。
在 Visual Studio 调试器中编译和运行本地化时,我们期望并获得带有简单文本字符串的 200 响应。部署到 Azure Web 应用程序时会出现此问题。一旦我们这样做了,我们对 API 的调用都会返回以下内容:
{
"Version": {
"_Major": 1,
"_Minor": 1,
"_Build": -1,
"_Revision": -1
},
"Content": {
"Headers": [
{
"Key": "Content-Type",
"Value": [
"text/plain; charset=utf-8"
]
}
]
},
"StatusCode": 200,
"ReasonPhrase": "OK",
"Headers": [],
"RequestMessage": null,
"IsSuccessStatusCode": true
}
如果我们卸载 Polly,一切都会恢复正常。
我们可以找到的唯一其他评论/问题如下:在 Azure Web App 中的 nuget 更新后 Web API 返回 HttpResponseMessage 对象
2个问题:
- 上面的反应是什么?我的内容不存在,我以前从未见过。
- Polly 中是否有一些我在配置等方面遗漏的东西可能会导致这种情况?