You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS托管WCF服务启用Gzip压缩后报内容类型不匹配错误求助

问题分析与解决方案

错误原因

你把原配置中的textMessageEncoding替换成binaryMessageEncoding并启用Gzip压缩后,服务的消息编码方式从文本SOAP格式变为了二进制SOAP格式,此时服务期望的请求内容类型是application/soap+msbin1+gzip,但SOAP UI仍然发送传统的application/soap+xml;charset=UTF-8格式请求,两者不匹配导致报错。你的需求是对原有文本SOAP消息做Gzip压缩,而非切换到二进制编码,原修改方向有误。

正确配置方案

要在保持文本SOAP消息格式的前提下实现Gzip压缩,需使用gzipMessageEncoding作为外层包装器,包裹原有的textMessageEncoding,同时保留httpTransport(IIS托管WCF服务必需)。修改后的绑定配置如下:

<customBinding>
  <binding name="SOAPBinding">
    <!-- 启用消息层Gzip压缩,内部保留原文本编码配置 -->
    <gzipMessageEncoding innerMessageEncoding="textMessageEncoding">
      <textMessageEncoding messageVersion="Soap11WSAddressing10" />
    </gzipMessageEncoding>
    <!-- HTTP传输层配置,若需要传输层压缩可在此添加compression="GZip" -->
    <httpTransport />
  </binding>
</customBinding>

额外注意事项

  • 测试时需确保SOAP UI发送的请求携带Accept-Encoding: gzip请求头,服务才会返回带有Content-Encoding: gzip的压缩响应。
  • 若同时需要传输层(HTTP层面)的压缩,可在httpTransport节点添加compression="GZip"属性,但通常消息层压缩已满足需求。

内容的提问来源于stack exchange,提问作者Osprey1999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 01:04:40