WCF通信虽然命名管道与非.net应用程序

时间:2009-08-18 20:03:05

标签: c# ruby wcf pipe

我听说WCF是通过网络和.net中的应用程序进行通信的新标准。这个想法似乎也很有意义,为程序提供标准的通信接口。

这是我的情况,我有一个.net应用程序,我想通过管道与ruby应用程序进行通信。在.net端(服务器)我想使用WCF,而ruby端(客户端)将是口香糖和胶带。

我认为两端都不需要是WCF,但是要做到这一点会涉及到什么。是否有标准协议WCF期望传入请求?

4 个答案:

答案 0 :(得分:1)

使用命名管道绑定非WCF客户端可以,但这并不容易。您需要以正确的格式发送消息以供WCF使用。

请参阅此firstlast entry on WCF message framing以了解复杂性。这不是不可能,但值得努力吗?

推荐使用http传输+某种类型的文本或标记编码,如basicHttpBinding或webHttpBinding。

答案 1 :(得分:0)

取决于您的绑定,您可以使您的WCF成为webHttp绑定并使其变得安静(最简单),您只需要获取和发布。你将不得不使用SOAP标头和其他绑定来与你的WCF进行通信,我自己也没有这样做,但我确定那里有关于如何为非.net应用程序执行此操作的信息。

答案 2 :(得分:0)

您希望尽可能简化合约(根据您公开的类型)。虽然我自己没有尝试过,但我知道支持这种类型的功能(.Net到Java是一种常见的用法)并且相对容易做到。

你没有提到哪一方(.Net或Ruby)将是服务器,但我希望如果你在WCF中托管服务并从ruby中使用它,这将更容易做到。反过来可能会更加痛苦,因为与WCF的内部结合可能会有点痛苦。

答案 3 :(得分:0)

你指的是哪种“管道”?您不能将命名管道绑定与任何不是.NET的代码一起使用。

使用其中一个HTTP绑定(例如webHttpBinding或basicHttpBinding)可能会更好。