问题是如何从没有.NET的本地应用程序与WCF“世界”进行接口交互?
编辑:抱歉,我应该更具体一些,因为WCF涵盖了如此广泛的范围。我想到的情况是,您有几个使用WCF/TCP通信作为它们的通信/IPC机制的应用程序,并且现在需要集成一个没有.NET可用的本地(C++)应用程序。
问题是如何从没有.NET的本地应用程序与WCF“世界”进行接口交互?
编辑:抱歉,我应该更具体一些,因为WCF涵盖了如此广泛的范围。我想到的情况是,您有几个使用WCF/TCP通信作为它们的通信/IPC机制的应用程序,并且现在需要集成一个没有.NET可用的本地(C++)应用程序。
WCF是协议无关的——几乎是这样。但你需要考虑与WCF通信的方式:
只要你能发送消息,对方就可以使用,你应该没问题。
1)命名管道绑定:它是专有的,并且在.NET之外难以使用。
2)TCP绑定:它是专有的,并且在.NET之外难以使用。
3)basicHttp绑定:它是最容易在.NET之外实现的之一。
4)wsHttp绑定:只要你有一个能够创建和消费ws*消息的本地库,你就可以使用,但有点困难。
5)REST API:确实是最容易的,我建议使用它如果你对所提供的服务类型有控制权。
使用非标准SOAP
协议的“WCF World”是问题所在。NetTcpBinding
和NetNamedPipeBinding
需要某种未受管控的到托管的桥接,如所述。所以答案并不明显,“是”还是“否”取决于WFC服务提供的绑定。
我不知道你所说的"WCF世界"是什么。WCF可以用于实现SOAP Web服务,可以使用旧的SOAP 1.1格式或现代的WS-Security。因此,你的问题变成了:我能从C++调用SOAP Web服务吗?答案显然是“可以”。