我很快就參加了70-513考試。轉儲中有一個問題,我不明白。WCF - IDuplexSessionRouter VS IRequestReplyRouter
WCF服務實現與單向和請求 - 應答操作的合同。該服務通過TCP傳輸暴露。客戶端使用路由器與服務進行通信。
答案表示使用IDuplexSessionRouter而不是IRequestReplyRouter。我可以知道爲什麼不能使用IRequestReplyRouter?
我很快就參加了70-513考試。轉儲中有一個問題,我不明白。WCF - IDuplexSessionRouter VS IRequestReplyRouter
WCF服務實現與單向和請求 - 應答操作的合同。該服務通過TCP傳輸暴露。客戶端使用路由器與服務進行通信。
答案表示使用IDuplexSessionRouter而不是IRequestReplyRouter。我可以知道爲什麼不能使用IRequestReplyRouter?
這個問題覆蓋MSDN文章中:Building a router(尋找「路由器和傳輸會話」節還有)
路由服務使用的是定義用於接收和發送消息的通道的形狀合同,因此輸入通道的形狀必須與輸出通道的形狀相匹配。
因此,如果您對使用請求 - 回覆通道形狀的端點執行路由,則必須在入站端點(例如IRequestReplyRouter)上使用兼容合約。
這意味着如果您的目標終端使用具有多種通信模式的合約(如混合單向和雙向操作),則無法創建可接收消息並將消息路由到所有消息的單個服務端點。解決方法是在路由服務中使用雙工協定,例如IDuplexSessionRouter。
參考文獻:
發佈的複製和粘貼樣板/逐字回答多個問題時一定要小心,這些往往會被標記爲在社區「垃圾」。如果你這樣做,那麼它通常意味着問題是重複的,所以標記它們。 http://stackoverflow.com/questions/10911344 – Kev