我得到了示例并将其设置为在本地 IIS 上运行。我没有遇到与这个问题相同的问题,但我确实遇到了一个大问题。在 IIS 中访问服务给了我这个错误消息:
合同需要 Duplex,但绑定“BasicHttpBinding”不支持它或未正确配置以支持它。
经过一番摸索,我找到了这个问题的原因。WCF 4 现在为每个传输分配默认绑定(我越来越不喜欢这个功能了)。对于 HTTP 传输,默认绑定是 basicHttpBinding。问题是 customBinding 配置不会覆盖任何默认绑定。这会导致 WCF 尝试通过 basicHttpBinding 配置双工,这当然不受支持。修复方法是关闭 HTTP 的默认传输映射并将其分配给您的自定义绑定,如下所示为此服务:
<protocolMapping>
<clear/> <!-- removes all defaults which you may or may not want. -->
<!-- If not, use <remove scheme="http" /> -->
<add scheme="http" binding="customBinding" bindingConfiguration="rspBinding"/>
</protocolMapping>
一旦我将它添加到 serviceModel 元素,基于 IIS 的服务就可以正常工作。