1
我有一個雙工wcf服務,它保存(在內存中)到其客戶端的回調引用列表。在wcf服務上有兩種方法訂閱和取消訂閱。Wcf路由器 - 雙工服務 - 重新訂閱
它的一切工作正常與一個wcf服務器和多個客戶端。當我使用Wcf路由器服務引入兩臺帶有負載均衡的wcf服務器時,問題就開始了。
例如 - 我有兩個wcf服務器(wcf1和wcf2)和一個路由器服務器(r1)。當客戶端調用「訂閱」到路由器端點時,它將該請求廣播到wcf1和wcf2服務器。所以他們都持有對客戶端的回調引用。當其中一臺wcf服務器關閉時,問題開始。如果wcf1服務器關閉,則所有訂閱都將丟失。所以當它恢復活力時,沒有任何訂閱可用於回調,並且無法通知客戶重新訂閱。
我試着在客戶端收聽故障事件。這不會被觸發,因爲它連接到路由器端點。只有當路由器服務器關閉時,該事件纔會觸發。
有沒有人遇到過類似的問題?難道我做錯了什麼?
我假設回調引用不能被序列化並存儲在某個持久性存儲中。我將重新檢查 – Sai
如果那是真的,那麼我想不出任何其他方式。我不認爲MS正確設想人們如何使用WCF雙面打印 - 在我看來,WCF雙面打印不適合用於目的。 –
我剛剛檢查過,當我們序列化和反序列化回調時,它不再是一個有效的對象或持有對客戶端的實際引用。我同意,wcf duplex會產生比解決問題更多的問題。 – Sai