我有一个asp.net .asmx webservice编写来处理来自第三方工具的请求。第三方工具向web服务发出http POST请求以获取用户信息。我正在使用IIS7asp.net webservice处理gzip压缩请求
选中“删除所有编码”运行Fiddler,我可以看到web服务调用和一切功能正常。如果我取消选中“删除所有编码”,则web服务调用将失败并显示400错误请求。我看到的差异是标题“Content-Encoding:gzip”正在被Fiddler删除,并且内容正在被解压。
因此,当Content-Encoding标头被移除并且内容被解压时,我的webservice功能完美。当头部出现并且内容被压缩时,web服务失败。
我怎样才能既:
- 配置我的web告诉客户端,它不会接受压缩的请求(并希望第三方工具尊重是)
- 解压缩的内容早在asp.net处理
- 修改我的web服务与压缩后的数据
更新工作:要清楚,我不需要要在Response中配置gzip编码,我需要处理gzip编码的Request to my webservice请求。
更新2:第三方工具是Salesforce.com Outlook插件。所以,我无法修改它,并且很多其他公司都毫无困难地使用它。它有要的东西我做(或不做)
更新3:我发现一个职位here,指出IIS不支持压缩数据传入POST请求,它只支持压缩响应。这仍然是真的吗?
谢谢,但这样远没有这个帮助。通过取消选中配置设置中的复选框,我可以在IIS7中关闭压缩功能,但是,这似乎只影响服务器的响应。我需要处理请求到被压缩的服务器。 – Geoff 2010-12-07 14:45:59
下面列出了gzip客户端/服务器对话的正常工作原理:http://www.websiteoptimization.com/speed/tweak/compress/ – 2010-12-07 14:55:08
这可能是您的第三方工具播放不好。 – 2010-12-07 14:56:44