RIA服务域服务类中的慢速操作

时间:2010-02-10 03:59:58

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

sHi All,

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

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

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

E.g。

从客户端调用域服务 - “启动操作”(启动新线程)

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

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