【问题标题】:Set the Timeout of a Callback in a Polling Duplex WCF Service在轮询双工 WCF 服务中设置回调超时
【发布时间】:2012-02-12 15:07:57
【问题描述】:

我有一个带有 CallbackContract 的 WCF 服务。该服务使用“pollingDuplexHttpBinding”向 Silverlight 客户端公开 当 Silverlight 客户端“死机”并且服务调用回调操作时,它会在一分钟后收到超时异常。 如何将此超时设置为不同?

谢谢, 埃拉德

【问题讨论】:

    标签: wcf silverlight pollingduplexhttpbinding


    【解决方案1】:

    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

    希望,这会有所帮助。

    【讨论】:

    • 我不使用文章中的“MultipleMessagesPerPoll”作为我的双工模式。我的理解是这与我的问题无关 - 我错了吗?具体来说,关于 InactivityTimeout:它是关于通道在没有通过它发送任何消息的情况下可以存活的时间量。我看不出它与我的问题有什么关系(我也试过了......)
    【解决方案2】:

    所以看来 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>
    

    【讨论】:

      猜你喜欢
      • 2012-11-08
      • 1970-01-01
      • 2013-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      相关资源
      最近更新 更多