WF4.0: Тайм-аут ResumeBookmark после 64 раз успешных испытаний с использованием WorkflowHostingEndpoint - PullRequest
3 голосов
/ 16 августа 2011

Это очень интересная проблема: я пишу упражнение, чтобы получать сообщения извне и обрабатывать его дочерние действия. Я создаю закладку в активности, чтобы ждать. Когда придет новое сообщение, я возобновлю закладку с помощью WorkflowHostingEndpoint и обработаю ее. Наконец, создайте закладку еще раз, чтобы дождаться следующего нового сообщения. Но проблема в том, что это работает нормально, пока я не обработал 64 сообщения (я пробовал несколько раз, всегда 64 правильная обработка затем не удалась). После этого все вызовы ResumeBookmark завершатся с исключением Timeout. Я попытался использовать WorkflowApplication для размещения своей активности, и она работает нормально. Я весьма признателен за любые полезные ответы. Благодарю.

1 Ответ

0 голосов
/ 16 мая 2013

Это может быть потому, что вы запускаете дополнительные экземпляры с каждым сообщением? Существует ограничение на максимальное количество активных экземпляров одновременно. Если вы достигнете предела, ваш запрос для другого экземпляра будет ждать, пока этот предел больше не будет достигнут, но вы получите тайм-аут, прежде чем это произойдет.

Значение по умолчанию зависит от количества имеющихся у вас процессоров.

Вы можете изменить ограничения в вашем приложении / web.config:

<behaviors> 
  <serviceBehaviors> 
    <behavior name="CalculatorServiceBehavior">
      <serviceThrottling maxConcurrentCalls="16" maxConcurrentInstances="1000"/> 
    </behavior>
  </serviceBehaviors>
</behaviors>

См. ServiceThrottling на MSDN для получения дополнительной информации.

...