【发布时间】:2012-02-12 15:07:57
【问题描述】:
我有一个带有 CallbackContract 的 WCF 服务。该服务使用“pollingDuplexHttpBinding”向 Silverlight 客户端公开 当 Silverlight 客户端“死机”并且服务调用回调操作时,它会在一分钟后收到超时异常。 如何将此超时设置为不同?
谢谢, 埃拉德
【问题讨论】:
标签: wcf silverlight pollingduplexhttpbinding
我有一个带有 CallbackContract 的 WCF 服务。该服务使用“pollingDuplexHttpBinding”向 Silverlight 客户端公开 当 Silverlight 客户端“死机”并且服务调用回调操作时,它会在一分钟后收到超时异常。 如何将此超时设置为不同?
谢谢, 埃拉德
【问题讨论】:
标签: wcf silverlight pollingduplexhttpbinding
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;
更新:在“How to: Build a Duplex Service for a Silverlight Client”的“使用 PollingDuplexHttpBinding” 段下,有基于 web.config 的示例配置 PollingDuplexHttpBinding。
希望,这会有所帮助。
【讨论】:
所以看来 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>
【讨论】: