第二次wcf轮询双工服务呼叫太长

时间:2012-11-20 10:43:47

标签: wcf silverlight timeout pollingduplexhttpbinding

我的WCF服务有奇怪的问题。我使用pollingDuplexBinding和Silverlight客户端。 绑定由web.config

中的此代码注册
<bindingElementExtensions>
   <add name="pollingDuplex" type="System.ServiceModel.Configuration.PollingDuplexElement, System.ServiceModel.PollingDuplex" />
</bindingElementExtensions>

首次通话时一切正常 - 服务快速返回数据。但第二次通话执行超过5个学生。如果我设置了大的超时,结果将返回给客户端,否则它会抛出TimeoutException。我正在调用的WCF方法什么都不做 - 只返回短字符串。

WCF跟踪说,第二次服务调用比客户端调用此方法晚了5分钟,并快速执行。 我使用这些服务属性:

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

这是客户端代码

        var binding = new PollingDuplexHttpBinding(PollingDuplexMode.SingleMessagePerPoll);            

        var address = new EndpointAddress("/SportService.svc");
        _proxy = new SportDuplexClient(binding, address);

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我这样解决了:

在web.config文件中将aspNetCompatibilityEnabled =“false”设置为false

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true" />
</system.serviceModel>

或在web.config中设置sessionState mode =“Off”

<system.web>
    <sessionState mode="Off" />
</system.web>

以这种方式解决我的问题...