我有一個帶有CallbackContract的WCF服務。該服務使用「pollingDuplexHttpBinding」暴露給Silverlight客戶端 當Silverlight客戶端「死亡」並且服務調用回調操作時,它會在一分鐘後收到超時異常。 如何設置這個超時時間不同?在輪詢雙工WCF服務中設置回調超時
感謝, 埃拉德
我有一個帶有CallbackContract的WCF服務。該服務使用「pollingDuplexHttpBinding」暴露給Silverlight客戶端 當Silverlight客戶端「死亡」並且服務調用回調操作時,它會在一分鐘後收到超時異常。 如何設置這個超時時間不同?在輪詢雙工WCF服務中設置回調超時
感謝, 埃拉德
如此看來,PollingDuplexHttpBinding的「的SendTimeout」屬性做這項工作:
<extensions>
<bindingExtensions>
<add name="pollingDuplexHttpBinding" type="System.ServiceModel.Configuration.PollingDuplexHttpBindingCollectionElement, System.ServiceModel.PollingDuplex, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</bindingExtensions>
</extensions>
<bindings>
<pollingDuplexHttpBinding>
<binding name="myPollingDuplex" sendTimeout="00:00:05"/>
</pollingDuplexHttpBinding>
</bindings>
<services>
<service name="Kodak.Pgy.Server.Event.WCFService.EventService" behaviorConfiguration="EventBehavior">
<!--For duplex communication with the service from silverlight client-->
<endpoint address="/for-silverlight" binding="pollingDuplexHttpBinding" bindingConfiguration="myPollingDuplex" contract="IEventService"/>
</service>
</services>
有一個在MSDN一個很好的文章與配置PollingDuplexHttpBinding:
//Inactivity timeout
PollingDuplexHttpBinding binding = new PollingDuplexHttpBinding();
//Get default inactivity timeout
TimeSpan defaultInactivityTimeOut = binding.InactivityTimeout;
//Returns default timeout in minutes: 10
string txtDefaultInactivityTimeOut = defaultInactivityTimeOut.Minutes.ToString();
//Set new inactivity timeout
TimeSpan newInactivityTimeOut = new TimeSpan(0, 5, 0);
binding.InactivityTimeout = newInactivityTimeOut;
UPDATE:在'要使用PollingDuplexHttpBinding'款 'How to: Build a Duplex Service for a Silverlight Client' 有基於web.config
的示例配置PollingDuplexHttpBinding
。
希望,這會有所幫助。
我不使用「MultipleMessagesPerPoll」的文章作爲我的雙工模式英寸我的理解是這與我的問題無關 - 我錯了嗎?具體而言,關於InactivityTimeout:這是關於頻道可以在沒有任何消息通過它發送的情況下生活的時間量。我不明白它與我的問題有什麼關係(我也嘗試過......) – Elad 2012-02-13 09:30:22