【问题标题】:Slow Operations In A RIA Services Domain Service ClassRIA 服务域服务类中的缓慢操作
【发布时间】:2010-02-10 03:59:58
【问题描述】:

大家好,

我正在使用带有 RIA 服务的 silverlight 3。我想知道我应该如何处理域服务类中的缓慢操作?我有一个需要几分钟的手术。当客户端等待来自服务器的响应时,我在一分钟后收到 WCF 超时。

也许是另一种方法?是否可以告诉域服务类开始一个操作,然后每 5 秒轮询一次服务器以查看它是否完成。

我尝试实现这一点,但遇到的问题是域服务类是我调用的每个域服务方法的新实例。无状态的意思是我的操作不能让域服务启动一个线程,以后再来检查一下。

例如

从客户端调用域服务 - '启动操作'(启动一个新线程)

从客户端调用域服务 - '操作完成' - 这不起作用,因为我正在调用域服务的新实例

有什么想法吗?

【问题讨论】:

    标签: c# .net wcf silverlight-3.0 wcf-ria-services


    【解决方案1】:

    您可以让您的服务操作返回某种请求标识符,该标识符存储在您的域服务上的静态成员(例如,将 id 与请求结果和状态相关联的字典)中。该服务将生成一个线程来异步处理此请求(防止 WCF 超时)。静态成员在完成后由线程更新。

    然后,您可以使用标识符从 SilverLight 进行轮询。域服务的新实例将使用静态成员返回状态和结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多