是否可以使用 JAX-WS 创建 WebService,然后使用这种绑定(bind)由 WCF 客户端使用?
<bindings>
<basicHttpBinding>
<binding name="CaseObjectServicePortBinding" >
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="Certificate" />
</security>
</binding>
</basicHttpBinding>
</bindings>
我现在在没有 WSIT 的情况下创建了这样的服务,只是一个普通的服务,并且只想忽略传入 SOAP 消息中的“Security” header 。但它失败了:
“无法为具有权限‘xxxxxxxxxx’的 SSL/TLS 建立安全 channel 。”
如果我改变:
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="Certificate" />
</security>
到:
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="Certificate" />
</security>
一切都完美无缺。任何想法我做错了什么?
最佳答案
答案是肯定的。您可以使用 BasicHttpBinding 或 WsHttpBinding
发生错误是因为当您使用 TransportWithMessageCredential ,WCF 客户端将对您通过线路发送的消息施加额外的安全性,该线路仅可与 WCF 服务互操作。
一旦您将其更改为 交通 ,只应用了传输安全(使用证书的SSL),这样为什么客户端和服务都可以理解如何相互通信。
干杯。
关于wcf - 带有 WCF 客户端的 Java JAX-WS 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4111013/