2017-04-10 21 views
0

我在webjob中使用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],以C(HttpStatusCode expectedStatusCode,HttpStatusCode actualStatusCode,T retVal的,StorageCommandBase 1 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(RESTCommand 1 CMD,HttpWebResponse RESP,異常前,的OperationContext CTX):\程序文件(x86 )\ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCommon \ Blob \ CloudBlob.cs:line 3186 at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse [T](IAsyncResult getResponseResult)in 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 \ ClassLibrar yCommon \ Core \ Executor \ Executor.cs:line 50 at Microsoft.WindowsAzure.Storage.Blob.CloudBlob.EndRenewLease(IAsyncResult asyncResult)in c:\ Program Files(x86)\ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCommon \ Blob \ CloudBlob.cs:第1982行 位於Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions。 <> c:\ Program Files(x86)\ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCommon \ Core \ Util \ AsyncExtensions.cs中的c__DisplayClass4.b__3(IAsyncResult ar):第114行 ---從前一個位置結束堆棧跟蹤其中引發異常--- 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任務task) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任務task) 在Microsoft.ServiceBus.Messaging.BlobLeaseManager.d__23.MoveNext () ---內部異常堆棧跟蹤結束--- at Microsoft.ServiceBus.Messaging.BlobLeaseManager.d__23.MoveNext() ---上一個拋出異常的位置的堆棧跟蹤結束--- at System.Runtime.CompilerServices.TaskAwai ter.ThrowForNonSuccess(任務task) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任務task) 在Microsoft.ServiceBus.Messaging.BlobLeaseManager.d__24.MoveNext() ---從以前的位置,其中異常堆棧跟蹤的結尾在d被拋出--- 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任務task) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任務task) 在RoutingServiceWebJob.DataProcessorFactory.EventHubDataProcessor.d__37.MoveNext() :\ a \ 1 \ s \ RoutingServiceWebJob \ DataProcessorFactory \ EventHubDataProcessor.cs:line 163

我一次只讀一條消息。請建議。

回答

0

我能夠通過將主機名設置爲唯一字符串來避免這種情況。例如

var eventProcessorHostName = Guid.NewGuid().ToString(); 
相關問題