我有一個Silverlight客戶端和WCF C#服務器之間的雙工TCP連接。服務器不斷向客戶端推送更新。但是,大約10分鐘的用戶不活動後,發送到服務器的任何用戶操作都會導致異常,儘管更新成功繼續。我應該在哪裏增加ReceiveTimeout?
鑑於涉及的時間段和客戶端的不活動,我猜測它涉及ReceiveTimeout設置。但是,當我嘗試在客戶端上設置它時(見下文),它不能解決這個問題。
CustomBinding binding = new CustomBinding(new BinaryMessageEncodingBindingElement(),
new TcpTransportBindingElement());
binding.ReceiveTimeout = TimeSpan.MaxValue;
EndpointAddress address = new EndpointAddress(testAddress);
testClient = new TestClient(binding, address);
我需要設置此服務器端,以及或代替客戶端嗎?
如果我確實需要在服務器上設置它,我將如何執行此操作,因爲我使用OperationContext.Current.GetCallbackChannel<ITestClient>()
來獲取回調接口?
回調接口不允許我訪問屬性來設置超時,我不確定要將它投射到什麼位置才能啓用此功能。我試着在服務器端的ServiceHost上設置它,但是這也沒有解決它。
NetTcpBinding不直接在Silverlight中可用。要使用它,你需要使用上面的模式。 – dlanod