Использование EventProcessorHost в веб-задании с несколькими экземплярами - исключение Microsoft.ServiceBus.Messaging.LeaseLostException

Я использую EventProcessorHost в webjob с несколькими экземплярами - исключение Microsoft.ServiceBus.Messaging.LeaseLostException. Честно говоря, только один экземпляр дает это исключение.

Это не дает никаких исключений, когда я запускаю его как отдельные экземпляры

Microsoft.ServiceBus.Messaging.LeaseLostException: исключение типа 'Microsoft.ServiceBus.Messaging.LeaseLostException' было сгенерировано. ---> Microsoft.WindowsAzure.Storage.StorageException: удаленный сервер возвратил ошибку: (409) Конфликт. ---> System.Net.WebException: удаленный сервер возвратил ошибку: (409) Конфликт. в Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException[T](HttpStatusCode Ожидаемый StatusCode, HttpStatusCode actualStatusCode, T retVal, StorageCommandBase1 cmd, Exception ex) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\Common\Shared\Protocol\HttpResponseParsers.Common.cs:line 50 at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.<>c__DisplayClass33.<RenewLeaseImpl>b__32(RESTCommand1 cmd, HttpWebResponse или Exception ex, OperationContext ctx) в c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Blob\CloudBlob.cs: строка 3186 в Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse[T](IAsyncResult getResponseResult) в c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs: строка 299 --- Конец внутренней трассировки стека исключений --- в Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndExecuteAsync[T](результат IAsyncResult) в c: \ Program Files (x86) \ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCommon \ Core \ Executor \ Executor. cs: строка 50 в Microsoft.WindowsAzure.Storage.Blob.CloudBlob.EndRenewLease(IAsyncResult asyncResult) в каталоге c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Blob\CloudBlob.cs: 1982: строка:.WindowsAzure.Storage.Core.Util.AsyncExtensions.<> C__DisplayClass4.b__3(IAsyncResult ar) в c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Util\AsyncExtensions.cs: строка 114 --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Задача задачи) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Задача задачи) в Microsoft.ServiceBus.Messaging.BlobLeaseManager.d__23.MoveNext() --- Служба завершения трассировки внутреннего исключения Microsoft --- в конце.Messaging.BlobLeaseManager.d__23.MoveNext () --- Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) в System.Runtime.CompilerServices.TaskAwaiter. HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.ServiceBus.Messaging.BlobLeaseManager.d__24.MoveNext() --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSucc ess (Задача задачи) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Задача задачи) в RoutingServiceWebJob.DataProcessorFactory.EventHubDataProcessor.d__37. 163

Я читаю сообщения по одному. Пожалуйста, предложите.

1 ответ

Решение

Мне удалось избежать этого, установив имя хоста в качестве уникальной строки. Например

var eventProcessorHostName = Guid.NewGuid().ToString();
Другие вопросы по тегам