Azure 存储 403 禁止异常是 32 位问题吗?

2024-03-11

我们花了相当多的时间来定位出现以下异常的原因:

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...

作为最后的手段,我们将应用程序服务环境设置从 32 位(似乎是默认的)更改为 64 位,问题得到解决。不再有禁止的例外情况。

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

Update

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

我们拥有的一些理论

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

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 存储 403 禁止异常是 32 位问题吗? 的相关文章

随机推荐