我需要禁用响应压缩。我有.NET 4.5版本的web.config,但现在需要.NET CORE 2.x。
<customBinding>
<binding name="BasicHttpBinding_Service">
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport decompressionEnabled="false" />
</binding>
</customBinding>
我有不支持压缩响应的Web服务,但仍然出现错误: System.ServiceModel.ProtocolException:'响应消息的内容类型application / x-gzip与绑定的内容类型不匹配(text / xml; charset = utf-8)。如果使用自定义编码器,请确保正确实施IsContentTypeSupported方法。响应的前653个字节为:“?”
非常感谢您
答案 0 :(得分:0)
ASP.NET Core具有documentation on compression。如您所见,ASP.NET Core不再使用web.config。如果您在IIS中托管ASP.NET Core应用程序,则仍将使用某些web.config设置,但仅使用那些与通用IIS托管相关的设置,而无需使用任何应用程序(动态压缩是IIS的一项功能,因此该设置仍然有用) ,但以前在ASP.NET应用程序中相关的其他web.config设置在ASP.NET Core中不再使用。不幸的是,目前我找不到有关哪些web.config设置仍然有用的文档。
无论如何,默认情况下,ASP.NET Core使用Kestrel Web服务器,该服务器以代码配置。对我上面链接的文档中的示例进行一些小的修改,我相信这可能会起作用:
vpa(result,k)
但这取决于压缩来自何处。如果您的ASP.NET Core应用程序和Internet之间有反向代理(例如IIS,但可能还有nginx,haproxy等),它们可能正在进行压缩,因此您需要了解应用程序体系结构并在右侧将其关闭地方。