2

У меня есть длинный рабочий процесс, который использует корреляцию. Клиент этой службы отправляет сразу два запроса. Шаблон сообщения для всех операций приема является односторонним. Тип привязки - basicHttp. Первый запрос инициирует рабочий процесс, а второй запрос выполняет определенное действие, связанное с первоначальным запросом. Чтобы гарантировать, что сообщения поступают в порядок, я заставляю клиента спать в течение установленного времени, чтобы рабочий процесс мог инициировать запрос и установить корреляционный ключ. Большую часть времени запросы на обслуживание обрабатываются успешно. Иногда рабочий процесс завершается с сообщениемФонд рабочего процесса 4 получает запросы не по заказу и сбой с ключом xx не был связан с экземпляром

«Казнь в InstancePersistenceCommand была прервана , потому что ключ экземпляра„XX“не был связан с экземпляром. Это может произойти, так как экземпляр или ключ был очищен, или потому что ключ недействителен. Ключ может быть недействительным, если сообщение, которое было отправлено , было отправлено в неподходящее время или содержит неверные данные корреляции 10. "

Служба размещена в IIS и в настоящее время работает на одном сервере. У меня есть одна активность приема, которая отмечена CanCreateInstance. Это действие инициирует рабочий процесс, а затем другие действия приема, которые находятся внутри действия выбора, отвечают на вызов службы. После первоначальной активности приема, а также после каждого из полученных я получаю активность под названием PromoteValue, которая продвигает свойство через участника продвигаемой собственности. Конфигурация для сохранения состояния деталей этой услуги timeToPersist = «00:01:00» timeToUnload = «00:00:00» hostLockRenewalPeriod = "00:00:30

Нужно ли мне установить услугу использовать AllowBufferedReceive и использовать канал, поддерживающий ReceiveContext? Должен ли я использовать двусторонний обмен сообщениями, а не один способ, поэтому блокирование клиента до тех пор, пока рабочий процесс не завершится с первоначальным запросом. Использование сна между вызовами рабочего процесса на клиенте нежелательно, он предотвращает возникновение ошибки.

ответ

0

Если кто-то еще сталкивается с этой проблемой. У меня было несколько рабочих процессов и все работает нормально, но как-то в новом я создал я пропустил один шаг a nd не мог понять, почему я получаю экземпляр, не связанный с сообщением.

только двойная проверка 6f от http://msdn.microsoft.com/en-us/library/ff432975%28v=vs.100%29.aspx

 Смежные вопросы

  • Нет связанных вопросов^_^