我有wcf服务支持basichttpbinding和wshttpbinding。我的客户端使用basichttpbinding正常运行,但当他们尝试使用wshttpbinding发布请求时,除非标题中包含wsa
标记,否则它无法正常工作,但由于某些原因他们无法更改。
我的问题是我可以在没有wsa
标签的情况下使其工作吗?我看到有关更改为自定义绑定的帖子,但我对此持怀疑态度。首先,我想知道是否有任何可能没有自定义绑定的方法。如果没有,使用custombinding有什么缺点吗?有什么好处呢?我可以使用wshttpbinding和其中一个使用自定义绑定的其中一个wshttp端点吗?
转换为自定义绑定时究竟发生了什么?编码类型是否会改变?
感谢。
答案 0 :(得分:1)
basicHttp和wsHttp绑定在这方面也是自定义绑定,它们由构成绑定的各种配置元素组成。在basicHttp和wsHttp的情况下,这恰好是两个最常用的SOAP配置,由.NET WCF团队配置以方便地表示这些配置,因此您不必在每次使用它们时自定义它们。 / p>
convert predefined bindings to custom bindings相当简单。什么变化取决于你改变的元素。
是的,服务可以有一个或多个端点指向它。
答案 1 :(得分:1)
当系统提供的绑定之一不完全匹配时,WCF CustomBindings允许您构建绑定以满足服务的要求。在大多数情况下,CustomBinding将使用“标准”绑定中使用的相同“构建块”(系统提供的绑定元素)构建。真正的区别在于您可以决定将哪些组件组装在一起,而不是依赖于Microsoft提供的集合。
您可能会发现WCF“BindingBox”可用于帮助您将标准绑定转换为自定义绑定:http://webservices20.blogspot.com/2009/08/bindingbox-convert-wcf-bindings.html
此外,以下链接提供了有关CustomBindings的其他信息: http://msdn.microsoft.com/en-us/library/aa347793(v=vs.110).aspx