Azure Storage 403 Forbidden异常是一个32位问题?

时间:2017-05-04 08:17:08

标签: c# asp.net azure azure-storage

我们花了相当长的时间来找出以下异常的原因:

The remote server returned an error: (403) Forbidden.

堆栈跟踪:

at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) 
   in c:\\Program Files (x86)\\Jenkins\\workspace\\release_dotnet_master\\Lib\\ClassLibraryCommon\\Core\\Executor\\Executor.cs:line 604
at Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.Create(BlobContainerPublicAccessType accessType, BlobRequestOptions requestOptions, OperationContext operationContext) 
   in c:\\Program Files (x86)\\Jenkins\\workspace\\release_dotnet_master\\Lib\\ClassLibraryCommon\\Blob\\CloudBlobContainer.cs:line 68
at Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.CreateIfNotExists(BlobContainerPublicAccessType accessType, BlobRequestOptions requestOptions, OperationContext operationContext) 
   in c:\\Program Files (x86)\\Jenkins\\workspace\\release_dotnet_master\\Lib\\ClassLibraryCommon\\Blob\\CloudBlobContainer.cs:line 233
at Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.CreateIfNotExists(BlobRequestOptions requestOptions, OperationContext operationContext) 
   in c:\\Program Files (x86)\\Jenkins\\workspace\\release_dotnet_master\\Lib\\ClassLibraryCommon\\Blob\\CloudBlobContainer.cs:line 196
...The rest is removed for clearity...

作为最后的手段,我们将App-service环境设置从32位(似乎是默认值)更改为64位,问题解决了。不再禁止例外。

我们仍然不知道32位应该导致异常的原因。有人知道为什么吗?很高兴知道。

更新

我们解决方案中的程序集编译为.NET 4.6.1 /任何CPU

我们的一些理论

  • Nuget / Azure不兼容性(版本控制)
  • JIT编译器32位/ 64位差异
  • 32位(身份验证和服务器时钟)的时序问题
  • 其他...

0 个答案:

没有答案