2009-08-18 143 views
3

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

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

我假设两端都不需要是WCF,但是在做这项工作时会涉及到什么。有没有一个标准的协议WCF预计传入的请求?

回答

1

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

看到这个firstlast entry on WCF message framing为复杂的暗示。这不是不可能的,但是值得付出吗?

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

+0

红宝石包装相当简单,但将框架协议从英文翻译成代码最终可能会比使用废弃的管道库更加容易。 – QueueHammer 2009-08-18 21:19:40

0

取决于你的绑定,你可以让你的WCF一个webHttp绑定,并使它宁静(最简单),你只是得到和帖子。其他绑定你将不得不使用SOAP头等来与你的WCF进行通信,我自己并没有这样做,但是我确定他们知道如何为非.NET应用程序做这件事。

0

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

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

+0

关于客户端服务器关系的好建议,我更新了帖子。 – QueueHammer 2009-08-18 20:18:49

0

你指的是什么样的“管道”?您不能使用任何不是.NET的代码来使用命名管道绑定。

你可能会使用HTTP绑定之一,比如webHttpBinding或basicHttpBinding。

+2

我特别想使用命名管道。我虽然WCF的好处之一是协议独立于传输。由于红宝石有一个管道库不应该能够工作? – QueueHammer 2009-08-18 20:20:39

+0

我回来了。我最近读到的是命名管道绑定只能在同一台机器上使用。我也没有看到任何地方记录的协议细节。把它们放在一起,它不会让你无法使用它与Ruby,但它可能是不可能的。 – 2009-08-18 20:46:42