ASP.NET Core禁用响应解压缩

时间:2018-11-30 14:03:22

标签: .net compression response core

我需要禁用响应压缩。我有.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个字节为:“?”

非常感谢您

1 个答案:

答案 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等),它们可能正在进行压缩,因此您需要了解应用程序体系结构并在右侧将其关闭地方。