2012-02-12 79 views
1

我有一个带有CallbackContract的WCF服务。该服务使用“pollingDuplexHttpBinding”暴露给Silverlight客户端 当Silverlight客户端“死亡”并且服务调用回调操作时,它会在一分钟后收到超时异常。 如何设置这个超时时间不同?在轮询双工WCF服务中设置回调超时

感谢, 埃拉德

回答

0

如此看来,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> 
0

有一个在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

希望,这会有所帮助。

+0

我不使用“MultipleMessagesPerPoll”的文章作为我的双工模式英寸我的理解是这与我的问题无关 - 我错了吗?具体而言,关于InactivityTimeout:这是关于频道可以在没有任何消息通过它发送的情况下生活的时间量。我不明白它与我的问题有什么关系(我也尝试过......) – Elad 2012-02-13 09:30:22