C# 写入CloudAppendBlob:远程服务器返回错误:(409)冲突&;ProcessExpectedStatusCodeNoException

C# 写入CloudAppendBlob:远程服务器返回错误:(409)冲突&;ProcessExpectedStatusCodeNoException,c#,azure,azure-storage,azure-storage-blobs,C#,Azure,Azure Storage,Azure Storage Blobs,我正在试图了解是什么导致远程服务器返回错误:(409)冲突异常 我通过获取租约、追加文本并破坏租约,将行写入AppendBlob,就像这样。这个错误只是偶尔发生,所以我很好奇什么样的情况会导致它发生。我的怀疑是,如果多个用户访问了执行此代码的端点,并且不知何故同时发生了获取租约的调用,那么可能会发生一些事情 // Get the AppendBlob reference CloudAppendBlob blob = …. // Acquire a lease on the blob until

我正在试图了解是什么导致远程服务器返回错误:(409)冲突异常

我通过获取租约、追加文本并破坏租约,将行写入AppendBlob,就像这样。这个错误只是偶尔发生,所以我很好奇什么样的情况会导致它发生。我的怀疑是,如果多个用户访问了执行此代码的端点,并且不知何故同时发生了获取租约的调用,那么可能会发生一些事情

// Get the AppendBlob reference
CloudAppendBlob blob = ….

// Acquire a lease on the blob until a call to breaking the lease is made
string leaseId = Guid.NewGuid().ToString();
await blob.AcquireLeaseAsync(null, leaseId);

// Append a new entry to the blob
await blob.AppendTextAsync(
       textToBeAppended,
       Encoding.UTF8,
       new AccessCondition { LeaseId = leaseId },
       new BlobRequestOptions(),
       new OperationContext());

// break the lease on the blob
await blob.BreakLeaseAsync(null);
失败的方法是Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException。

我从遥测中看到,对blob的PUT调用最初失败,出现409状态代码和上述异常,但在成功调用PUT后立即出现202结果代码。我假设Azure存储正在重试,但是我没有看到它应该附加到的文件中的文本行

这是完整的调用堆栈,如果这有帮助的话,我不确定ProcessExpectedStatusCodeNoException的含义是什么

Microsoft.WindowsAzure.Storage.StorageException:位于 Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndExecuteAsync (Microsoft.WindowsAzure.Storage,版本=9.3.1.0,区域性=中性, PublicKeyToken=31bf3856ad364e35Microsoft.WindowsAzure.Storage, 版本=9.3.1.0,区域性=中性,PublicKeyToken=31bf3856ad364e35: c:\程序文件 (x86)\Jenkins\workspace\release\u dotnet\u master\Lib\ClassLibraryCommon\Core\Executor\Executor.csMicrosoft.WindowsAzure.Storage, 版本=9.3.1.0,区域性=中性,PublicKeyToken=31bf3856ad364e35:50) 在 Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions+c__DisplayClass2`1.b__0 (Microsoft.WindowsAzure.Storage,版本=9.3.1.0,区域性=中性, PublicKeyToken=31bf3856ad364e35Microsoft.WindowsAzure.Storage, 版本=9.3.1.0,区域性=中性,PublicKeyToken=31bf3856ad364e35: c:\程序文件 (x86)\Jenkins\workspace\release\u dotnet\u master\Lib\ClassLibraryCommon\Core\Util\AsyncExtensions.csMicrosoft.WindowsAzure.Storage, 版本=9.3.1.0,区域性=中性,PublicKeyToken=31bf3856ad364e35:69) 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (mscorlib,版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089)在 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification (mscorlib,版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089)在 Microsoft.Community.Data.Providers.BlobStorageProvider+d_u1.MoveNext (Microsoft.Community.Data,版本=1.0.0.0,区域性=中性, PublicKeyToken=nullMicrosoft.Community.Data,版本=1.0.0.0, 区域性=中性,PublicKeyToken=空: C:\BA\813\s\Microsoft.Community\Microsoft.Community.Data\Providers\BlobStorageProvider.csMicrosoft.Community.Data, 版本=1.0.0.0,区域性=中立,PublicKeyToken=null:67)位于 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (mscorlib,版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089)在 Microsoft.Community.Data.Providers.BlobStorageProvider+d_u1.MoveNext (Microsoft.Community.Data,版本=1.0.0.0,区域性=中性, PublicKeyToken=nullMicrosoft.Community.Data,版本=1.0.0.0, 区域性=中性,PublicKeyToken=空: C:\BA\813\s\Microsoft.Community\Microsoft.Community.Data\Providers\BlobStorageProvider.csMicrosoft.Community.Data, 版本=1.0.0.0,区域性=中性,PublicKeyToken=null:72)位于 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (mscorlib,版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089)在 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification (mscorlib,版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089)在 Microsoft.Community.Web.Repositories.AzureMLRecommensionsRepository+d_u6.MoveNext (Microsoft.Community.Web,版本=1.0.0.0,区域性=中性, PublicKeyToken=nullMicrosoft.Community.Web,版本=1.0.0.0, 区域性=中性,PublicKeyToken=空: C:\BA\813\s\Microsoft.Community\Microsoft.Community.Web\Repositories\AzureMLRecommensionsRepository.csMicrosoft.Community.Web, 版本=1.0.0.0,区域性=中立,PublicKeyToken=null:95)

内部异常System.Net.WebException在处处理 Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndExecuteAsync: 在 Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException (Microsoft.WindowsAzure.Storage,版本=9.3.1.0,区域性=中性, PublicKeyToken=31bf3856ad364e35Microsoft.WindowsAzure.Storage, 版本=9.3.1.0,区域性=中性,PublicKeyToken=31bf3856ad364e35: c:\程序文件 (x86)\Jenkins\workspace\release\u dotnet\u master\Lib\Common\Shared\Protocol\HttpResponseParsers.Common.csMicrosoft.WindowsAzure.Storage, 版本=9.3.1.0,区域性=中性,PublicKeyToken=31bf3856ad364e35:54) 在 Microsoft.WindowsAzure.Storage.Blob.CloudBlob+c\u显示类39.b\u 38 (Microsoft.WindowsAzure.Storage,版本=9.3.1.0,区域性=中性, PublicKeyToken=31bf3856ad364e35Microsoft.WindowsAzure.Storage, 版本=9.3.1.0,区域性=中性,PublicKeyToken=31bf3856ad364e35: c:\程序文件 (x86)\Jenkins\workspace\release\u dotnet\u master\Lib\ClassLibraryCommon\Blob\CloudBlob.csMicrosoft.WindowsAzure.Storage, 版本=9.3.1.0,区域性=中性,PublicKeyToken=31bf3856ad364e35: 3830)在 Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse (Microsoft.WindowsAzure.Storage,版本=9.3.1.0,区域性=中性, PublicKeyToken=31bf3856ad364e35Microsoft.WindowsAzure.Storage, 版本=9.3.1.0,区域性=中性,PublicKeyToken=31bf3856ad364e35: c:\程序文件 (x86)\Jenkins\workspace\release\u dotnet\u master\Lib\ClassLibraryCommon\Core\Executor\Executor.csMicrosoft.WindowsAzure.Sto