我无法轮询以获取我的域服务中长时间运行的调用操作的状态。具体来说,在长时间运行的调用操作完成之前,所有对用于轮询状态的调用操作函数的调用都不会返回。
以下是详细信息:
- 我将 Silverlight 5 与 RIA 服务一起使用。
- 在我的服务器端域服务类(下面的示例代码)中,我在名为 RunLongOperation 的调用操作中有一个长时间运行的操作。
- 我还有一个名为 CheckStatusOfLongOperation 的调用操作函数,用于检索长时间运行操作的状态。
- 在我的 Silverlight 客户端中,我调用 RunLongOperation。之后,我每隔 5 秒调用一次 CheckStatusOfLongOperation。
- 根据 Fiddler 的说法,每 5 秒就会调用一次 CheckStatusOfLongOperation。但是,在 RunLongOperation 完成之前,任何调用都没有响应。
我该怎么做才能让 CheckStatusOfLongOperation 更快返回?
ASP.NET 服务器代码:
Public Class MyDomainService
Inherits DomainService
<Invoke()>
Public Function RunLongOperation() As String
'Long running operation, some database queries,
'but mostly in-memory operations
End Function
<Invoke()>
Public Function CheckStatusOfLongOperation() As String
'Checks a single variable and return status
End Function
End Class