2010-02-24 112 views
0

我正在開發一個解決方案與多個WCF服務之間的所有通信,即使他們是不同類型。這些服務通過ChannelFactory通用接口相互連接,並且每個服務都駐留在ServiceHost內。WCF回調協議和服務器到服務器

我的問題是如果在服務器之間使用回調協議來相互通信是否正確,並且如果是這樣的解決方案將如何看待。

目前我不喜歡這個實現,因爲每個服務都需要託管幾個不同接口的端點,一些用於其他服務,一些用於其他客戶端。

當我試圖在ServiceHost內託管的服務類中實現回調協議時,它失敗了。

回答

0

首先,當你發佈一個問題說「它失敗了」時,你需要告訴我們它失敗的方式。如果發生異常,則需要張貼ex.ToString()的結果來發布整個異常,包括所有InnerException實例。

爲了解決您的問題,我將實施一項服務合同,該服務合同代表需要與其他服務交談的每項服務的一部分。這個服務合同還會有一個回調合同。

這樣,就好像每個服務都運行一個僅用於服務到服務通信的微型服務。然後他們可以用服務之間傳遞的信息做自己的事情。

+0

在你提到的情況下,讓我們說每個服務託管它在服務主機中的接口。我會在哪裏放置其他進程連接的回調? 我的意思是ISomeMessage類型將由SomeMessageService通過ServiceHost承載。什麼會實現IServiceMesssageCallback? Btw即時通訊避免使用crud生成的代理。 – totem 2010-02-24 20:53:49

+0

我沒有看到回調無法由同一個服務類實現的理由。另外,請記住,每個服務都可以擁有自己獨特的服務合同實現。 – 2010-02-24 22:45:07