【问题标题】:Workflow Service stops responding after 464 messages工作流服务在收到 464 条消息后停止响应
【发布时间】:2012-02-13 20:59:37
【问题描述】:

我在执行工作流时遇到了一个特殊问题。
我已经尝试了我能想到的一切,现在需要想法。

这是我的配置:
1. 托管在 IIS 7 中的 WF4 工作流服务 (xamlx),并使用 net.msmq/netMsmqBinding 进行传输(MSMQ 是事务性的)。
2. 不使用工作流持久性。
3. 我使用控制台应用程序客户端向工作流发送消息(每条消息都会创建新的工作流)。 4.每个工作流看起来像:等待START消息->等待END消息(我只发送START消息)。

如果我发送 500 条消息 - 464 条得到正确处理,但除此之外,所有消息都进入 lock_* 队列,然后移动到毒队列。 我检查了调试、分析事件日志以及消息和跟踪 svclogs 这是我收到的最详细的消息:

System.TimeoutException, mscorlib, 版本=4.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089操作 未在分配的 00:00:30 超时时间内完成。时间 分配给该操作的可能是较长时间的一部分 超时。在 System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult 结果)在 System.ServiceModel.Activities.Dispatcher.PersistenceProviderDirectory.LoadOrCreateAsyncResult.HandleReserveThrottle(IAsyncResult 结果)在 System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult 结果)System.TimeoutException: 操作未在分配的 00:00:30 超时内完成。 分配给此操作的时间可能是 更长的超时时间。在 System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult 结果)在 System.ServiceModel.Activities.Dispatcher.PersistenceProviderDirectory.LoadOrCreateAsyncResult.HandleReserveThrottle(IAsyncResult 结果)在 System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult 结果)

此时对 http://localhost/MyWebService?wsdl 的请求也失败并返回 404。

如果我重新启动 IIS - 一切都会恢复正常,直到发送 464 条消息。

  1. 在哪里可以找到更详细的日志? (我已经将 System.Diagnostics 设置为最大详细度)
  2. 464 号有魔法吗?
  3. 什么可能导致此 Web 服务锁定?

【问题讨论】:

    标签: workflow-foundation-4 msmq workflowservice


    【解决方案1】:

    听起来您遇到了限制,这些设置适用于 WF4 就像它们适用于 WCF 一样。 maxConcurrentInstances 设置设置在给定时间可以在内存中的最大工作流实例数。

    <behaviors> 
      <serviceBehaviors> 
        <behavior name="WorkflowServiceBehavior"> 
          <!-- Specify throttling behavior -->
          <serviceThrottling maxConcurrentInstances="1000"/> 
        </behavior>
      </serviceBehaviors>
    </behaviors>
    

    顺便说一句,在 IIS 中托管时应始终使用持久性。 IIS 迟早会重新启动 AppDomain,如果 WorkflowServicehost 无法将工作流实例的状态保存到磁盘,它们将会丢失。这也意味着可以从内存中删除空闲的工作流实例,并且不计入内存限制的 maxConcurrentInstances。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 2016-08-06
    相关资源
    最近更新 更多