2013-10-29 95 views
0

我們計劃使用WCF路由服務。假設我們有兩個隊列(q1,q2),路由服務從q1接收消息,並將其轉發給請求應答服務,一旦路由服務接收到響應,它就會再次轉發給q2。WCF路由服務,對另一個服務的轉發響應

我們現在被困在如何將響應轉發到另一個隊列,這是WCF RoutingService中的一個可能的用例嗎?

在此先感謝您的幫助。

回答

1

路由服務使用MessageFilter定義來定義消息交換的特定屬性,例如地址,端點名稱甚至是完整的基於內容的路由的特定XPath語句。

下面的MSDN鏈接提供路由服務的消息過濾器定義的全面概述:
http://msdn.microsoft.com/en-us/library/ee517424.aspx

+0

那麼這如何幫助OP解決他們的問題? –

0

如果我理解正確的話就沒有辦法達到你想要做什麼。

路由器可以接收消息A並將其轉發到req-reply服務上,稱之爲服務B.它也可以接收來自服務B的迴應,然後將作爲異步消息的響應轉發給服務C.

然而,路由器根據來自服務B的響應內容將消息A發送到服務C是沒有辦法的,因爲到那時服務B(而不是消息A)的響應將是當前正在處理的消息。

我理解正確嗎?

0

我開始探索IOperationInvoker攔截操作之前,它實際上是調用

  • 在這一點上,你可能需要手動建立渠道,與其他服務來收集你的信息。
  • 痛點可能是反序列化消息對象作爲輸入數組的一部分提供給調用者。將對象作爲輸出轉換回消息。
  • 處理異步場景。

我有一個類似的場景來處理和任何指針如何解決你的問題將不勝感激。

最好的選擇將是「RoutingService」不是一個密封的類 - 這樣,我們可以創建我們自己的服務並實現我們想要的合同並覆蓋操作。