.net - ASP.NET Web API 自定义 ReasonPhrase 破坏自托管应用程序

标签 .net asp.net-web-api

自托管时 ASP.NET Web API服务我想使用定制ReasonPhrase提供有关请求结果的更详细信息。但是当我提供它时,客户端代码根本无法收到任何答案,例如这个答案导致No Response客户端错误:

return new HttpResponseMessage(code) { ReasonPhrase = message };

当我使用此代码时也会发生同样的情况:

HttpResponseMessage response = request.CreateResponse(code, result);
response.ReasonPhrase = message;
return response;

但是如果我只使用

return new HttpResponseMessage(code);

然后客户端成功收到响应。

There's一个答案指出这是卡西尼号的错误,并且我还在 asp.net 论坛上找到了有关此卡西尼号错误的提及。

那么可以做什么来允许自定义ReasonPhrase在自托管ASP.NET Web API服务?我想避免使用 IIS如果可能的话托管此服务。

最佳答案

我在 ReasonPhrase 中使用了非英语文本(实际上是俄语)。当我将文本更改为英文后,一切正常。 Here我找到了一个答案,即 ReasonPhrase 可能仅包含 ASCII 字符。

看起来这不是卡西尼号的问题,我几乎不确定这是否是一个问题。但尽管如此,我们无法使用本地化的 ReasonPhrase 仍然令人不安。

关于.net - ASP.NET Web API 自定义 ReasonPhrase 破坏自托管应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14032790/

相关文章:

asp.net-web-api - Veracode 问题 CWE 915

.NET WinForms HTML 编辑器组件

c# - strong signed 与 strong named for assembly 相同吗?

.net - 在 WCF 中使用声明的类型

c# - 从 Web API 同步调用外部 API

api - 如何在 Web Api Put 中使用 [Required] 属性和模型状态验证

c# - 异步任务的顺序处理

c# - .NET 动画窗口

rest - 使用 RestSharp 进行 Web API 调用 - 将 application/json 添加到正文中,从而导致操作时出现空参数

asp.net - HttpRequestMessage.IsLocal() 在一个站点上为 false 在同一台服务器上的另一个站点上为 true