WCF客户端超时

时间:2011-02-15 10:03:58

标签: .net silverlight wcf

我有连接到WCF服务的Silverlight应用程序。

如果我在应用程序启动时打开打开的连接,然后在客户端调用方法之前给它10分钟左右,它会超时。

我知道在web.config中更改超时时间很容易。

然而,我正在寻找WCF服务在soap客户端关闭后5分钟保持活动状态。 我可能会在Silverlight中运行一个后台线程,它调用一个WCF方法,该方法没有做任何事情,但这感觉相当hacky。

有更专业的方法吗?

由于

1 个答案:

答案 0 :(得分:1)

您可以将InstanceContextMode更改为signleton并在服务构造函数中启动该服务。使用signleton模式意味着您的会话永不过期。

[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]

另一个解决方案是将InstanceContextMode更改为PerSession并将InactivityTimeout设置为1小时。

<bindings>
    <wsHttpBinding>
      <binding name="WSHttpBinding" >
        <reliableSession inactivityTimeout="01:00:00" enabled="true" />
      </binding>
    </wsHttpBinding>
  </bindings>

更新(阅读评论后):您还可以设置inactivityTimeout =“无限”。