我正在使用web api构建RESTful服务。我的客户端是HTML5 / Jquery应用程序。该服务和应用程序在IIS 5.1上完美运行。但是,当我切换到IIS 7.5时,我看到响应包含Transfer-Encoding:chunked标头,我的客户端不理解/呈现UI元素(顺便说一句,这个HTML 5 / JQuery的东西是由第三方完成的,我不知道我想改变他们的代码。为什么我呢?毕竟,它工作正常,直到我们转移到IIS 7.5)。我的问题是:
当我从browser / fiddler访问服务时,我得到了正确的响应(xml / json)。我正在使用Json.net格式化程序。
答案 0 :(得分:1)
使用
myHttpResponseMessage.Headers.TransferEncodingChunked = false;
关闭分块编码。
答案 1 :(得分:1)
这可能是由于这个在测试后修复的错误:
“DevDiv 388456 - 当内容长度已知时,WebHost不应使用传输编码分块” http://aspnetwebstack.codeplex.com/SourceControl/changeset/changes/06f52b894414#src%2fSystem.Web.Http.WebHost%2fHttpControllerHandler.cs
设置response.Headers.TransferEncodingChunked = false;我没有解决这个问题。
由于在顶部按下了“解码”按钮,你很可能会在Fiddler中得到不同的结果,这会自动解除响应并从响应中删除传输编码标题。