【发布时间】:2015-02-26 20:14:15
【问题描述】:
我有一个客户端应用程序设置,该应用程序通过 SSL 连接到 IIS 托管的 WCF 服务,中间有一个负载平衡器。当我尝试使用 textMessageEncoding 时,以下配置工作。
服务器:
<binding name="customBinding_IRequestService_gzip2">
<textMessageEncoding messageVersion="Soap11" />
<httpTransport maxReceivedMessageSize="2147483647"></httpTransport>
</binding>
客户:
<binding name="customBinding_IRequestService_gzip_secure">
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport maxReceivedMessageSize="2147483647"></httpsTransport>
</binding>
但是,我想使用 binaryMessageEncoding 来利用压缩,所以我将配置更改为:
服务器:
<binding name="customBinding_IRequestService_gzip2">
<binaryMessageEncoding compressionFormat="GZip">
<readerQuotas maxDepth="64"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="4096"
maxNameTableCharCount="16384"/>
</binaryMessageEncoding>
<httpTransport maxReceivedMessageSize="2147483647"></httpTransport>
</binding>
客户:
<binding name="customBinding_IRequestService_gzip_secure">
<binaryMessageEncoding compressionFormat="GZip">
<readerQuotas maxDepth="64"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="4096"
maxNameTableCharCount="16384"/>
</binaryMessageEncoding>
<httpsTransport maxReceivedMessageSize="2147483647"></httpsTransport>
</binding>
现在我得到了这个错误:
System.ServiceModel.EndpointNotFoundException:带有 To 的消息 'https://myurl/gzip' 无法在接收方处理,因为 EndpointDispatcher 处的 AddressFilter 不匹配。检查 发送方和接收方的 EndpointAddresses 一致。
我尝试按照其他一些帖子中的建议合并 allowInsecureTransport,但错误线索变得更糟。这两种编码之间可能有什么区别?我是否可能需要更改负载均衡器上的某些内容,或者这只是正确配置 WCF 的问题?谢谢。
【问题讨论】:
标签: wcf