Azure CloudBlobContainer.CreateIfNotExists() 对本地开发抛出禁止 (403)

Azure CloudBlobContainer.CreateIfNotExists() throws Forbidden (403) on Local Development

我在 blobContainer.createIfNotExists 上开始收到 403 错误。以下是源码。

 CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
        string blobContainerName =string.IsNullOrEmpty(_sessionContext.DomainName) ? "localdevblob": _sessionContext.DomainName.ToLower();
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer container = blobClient.GetContainerReference(blobContainerName);
        container.CreateIfNotExists();

已验证的内容:

预计升级库可能会解决问题:

异常截图如下:

更新

显然,我刚刚从 https://github.com/Azure-Samples/storage-blob-dotnet-getting-started.git 下载了样本,它也能正常工作。当我比较项目中的 cloudBlobClient 对象和示例项目时,我发现由于某些奇怪的原因,我发现 blobClient(在我的项目中)丢失了 "AuthenticationHandler" 和 "Key",这将导致问题.但是这两个值存在于示例项目中。

getting 403 Error on blobContainer.createIfNotExists

我创建了一个示例来重现我这边的问题,代码可以很好地安装 WindowsAzure.Storage sdk v8.1.0v8.1.4 v8.4.0.

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true");

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");

container.CreateIfNotExists();

而且我还用 WindowsAzure.Storage v7.0.0 测试了代码,它也能正常工作。

此外,一些社区成员报告说,如果在项目中安装ApplicationInsights,则在执行存储操作时会出现WindowsAzure.Storage sdk returns 403 错误,这SO thread 讨论过。