2012-02-13 81 views
2

我在執行工作流時遇到了特殊問題。
我已經嘗試了所有我能想到的,現在需要的想法。工作流服務在464消息後停止響應

這是我的配置:
1.一種WF4工作流服務(xamlx)在IIS 7託管並使用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在 System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult的 結果)(IAsyncResult的 結果) System.TimeoutException: 操作未在分配的00:00:30超時內完成。 分配給此操作的時間可能是 較長超時的一部分。在 System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult的結果)在 System.ServiceModel.Activities.Dispatcher.PersistenceProviderDirectory.LoadOrCreateAsyncResult.HandleReserveThrottle在 System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult的 結果)(IAsyncResult的 結果)

在這一點上請求http://localhost/MyWebService?wsdl也失敗,404

如果我重新啓動IIS - 一切都恢復了正常,直到464個發送消息。

  1. 我在哪裏可以找到更詳細的日誌? (我已經將System.Diagnostics設置爲最大冗餘度)
  2. 難道數字是464?
  3. 什麼可能導致此Web服務鎖定?

回答

5

聽起來您正在進入節流限制,這些設置適用於WF4,就像他們對WCF所做的一樣。 maxConcurrentInstances設置設置給定時間內可以在內存中的工作流實例的最大數量。

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

就像旁邊你應該總是在IIS中託管時使用持久性。早晚IIS將重新啓動AppDomain,如果WorkflowServicehost無法將工作流實例的狀態保存到磁盤,則它們將丟失。這也意味着閒置的工作流實例可以從內存中移除,並且不會對存在內存限制的maxConcurrentInstances進行計數。

+0

就是這樣。後續問題:我可以從中找出哪些日誌?有沒有一個地方說「太多的實例 - 節流......」。 – 2012-02-14 15:04:25

+0

莫里斯,使它公平:http://stackoverflow.com/questions/9279252/iis-asp-net-where-can-i-see-logs-for-the-server-itself-specifically-throttl – 2012-02-14 15:08:18

+1

當你正在使用IIS7,您可以安裝Windows Server AppFabric。 – Maurice 2012-02-14 15:24:11

相關問題