我收到一个WCF服务进行通信,因此,我需要在java或python中创建一个客户端,以获取此服务提供的信息,这是WCF TCP服务。有可能吗?
答案 0 :(得分:7)
我假设当你说服务“是WCF TCP服务”时,你的意思是它使用netTcpBinding(方案net.tcp
)。
除SOAP等公共标准外,此绑定还依赖于某些专有的Microsoft协议。它们提供消息成帧,支持各种编码方案,以及通过消息流分层安全协议。这类似于netNamedPipe绑定,并解释了这些协议的更多细节here on my blog。
你的问题的答案是“是的,它是可能的”,但坏消息是,为了做到这一点,你必须在你选择的客户端平台中实现所有专有的Microsoft协议。您几乎肯定会想要避免这样做,因为这是很多工作(尽管可能有人已经为Java或Python编写了一个开源库)。
如果找不到库,并且能够在客户端平台上运行任何类型的.NET(或者如果可以插入单独的Windows机器作为代理,则在客户端和服务之间运行)我会考虑在.NET中创建一个适配器来代理您对服务的访问。这样的事情可以向服务提供纯粹的基于标准的接口(例如WS- *),在内部转发对真实服务的调用,以使其能够从其他平台消费。
编辑:我以前没有意识到Windows HPC的Java互操作库,这是另一个答案提到并链接到的。这看起来很有希望:开源和微软支持,为此可能更好。答案 1 :(得分:2)
net.tcp绑定是专有的。这是一个site,在其他一些背景下提及它。
文章指出在Github Interop Library Download Link
上发布的Java互操作库希望这会有所帮助......我很想知道答案,因为我恰好参与了业务的Web服务方面。