【发布时间】:2011-05-21 14:20:48
【问题描述】:
我编写了一个 asp.net .asmx 网络服务来处理来自第三方工具的请求。第三方工具向 Web 服务发出 http POST 请求以获取用户信息。我正在使用 IIS7
在选中“删除所有编码”的情况下运行 Fiddler,我可以看到 Web 服务调用,并且一切正常。如果我取消选中“删除所有编码”,Web 服务调用将失败并显示 400 错误请求。我看到的不同之处在于 Fiddler 正在删除标题“Content-Encoding: gzip”并且正在解压缩内容。
所以,当 Content-Encoding 标头被移除并且内容被解压后,我的 web 服务就可以完美运行了。当 header 存在并且内容被压缩时,webservice 会失败。
我该怎么做:
- 配置我的 web 服务以告诉客户端它不会接受压缩请求(并希望第三方工具尊重这一点)
- 在 asp.net 处理的早期解压内容
- 修改我的网络服务以使用压缩数据
更新:需要明确的是,我不需要在响应中配置 gzip 编码,我需要处理对我的 web 服务的 gzip 编码的请求。
更新 2:第三方工具是 Salesforce.com Outlook 插件。所以,我无权修改它,它被许多其他公司使用而没有麻烦。这一定是我正在做(或不做)的事情
更新 3:我发现一篇帖子 here 说 IIS 不支持带有压缩数据的传入 POST 请求,它只支持压缩响应。这仍然是真的吗?
【问题讨论】:
标签: asp.net web-services iis-7 asmx gzip