2009-08-18 95 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