0

我无法轮询以获取我的域服务中长时间运行的调用操作的状态。具体来说,在长时间运行的调用操作完成之前,所有对用于轮询状态的调用操作函数的调用都不会返回。

以下是详细信息:

  1. 我将 Silverlight 5 与 RIA 服务一起使用。
  2. 在我的服务器端域服务类(下面的示例代码)中,我在名为 RunLongOperation 的调用操作中有一个长时间运行的操作。
  3. 我还有一个名为 CheckStatusOfLongOperation 的调用操作函数,用于检索长时间运行操作的状态。
  4. 在我的 Silverlight 客户端中,我调用 RunLongOperation。之后,我每隔 5 秒调用一次 CheckStatusOfLongOperation。
  5. 根据 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
4

1 回答 1

0

您可能会看到会话状态被锁定。在此处查看有关如何关闭锁定的说明:http: //blogs.microsoft.co.il/blogs/idof/archive/2010/09/27/asp-net-compatible-wcf-services-concurrency-problem.aspx

于 2013-09-03T20:13:28.683 回答