我今天花了好几个小时试图让一个非常简单的WCF服务和一个Java客户端相互通信。我只是成功地让服务和客户端使用basicHttpBinding进行通信而没有启用安全性。
我想通过网络加密内容。我尝试过使用basicHttpBinding配置:
<basicHttpBinding>
<binding name="bindingConfig">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
现在这几乎导致了大量问题,因为当我的服务托管在IIS上时,我尝试在本地测试WCF服务时遇到证书错误(VS2012使用WCF测试客户端),使用任何浏览器浏览到WSDL,以及何时使用用于生成客户端的Svcutil / wsimport实用程序。
我不明白的是,当我使用WsHttpBinding并使用传输/ Windows安全时,我从未遇到证书问题,为什么会这样?
对我来说,最简单的方法是在有人想到之后实现我的目标?
答案 0 :(得分:1)
WCF和Java兼容性有点复杂。
首先,您在Java中使用哪个框架?
其次,在WCF方面,您应该更好地使用自定义绑定而不是wsHttpBinding。 您可以使用此tool轻松转换绑定。通过绑定,它将给出:
<customBinding>
<binding name="NewBinding0">
<textMessageEncoding MessageVersion="Soap11" />
<httpsTransport authenticationScheme="Negotiate" />
</binding>
</customBinding>
现在您只需配置Java端或调整WCF配置,即可启用SOAP12而不是SOAP11。如果有效,请告诉我。