1

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();

確認したこと:

  • コンテナ名は小文字で、標準に準拠しています
  • ローカル BLOB ストレージは Storage Explorer でアクセス可能であり、コンテンツの読み取り/アップロードで正常に動作します
  • 接続文字列: add key="StorageConnectionString" value="UseDevelopmentStorage=true"

ライブラリをアップグレードすると問題が解決する可能性があると予想されます。

  • ストレージ エミュレーターを 5.2 にアップグレードしました
  • Nuget パッケージ WindowsAzure.Storage を 8.4.0 にアップグレードしました (以前は 8.1.0 でしたが、既にエラーが発生していました)。

例外のスクリーンショットは次のとおりです。

ここに画像の説明を入力

アップデート

どうやら、https://github.com/Azure-Samples/storage-blob-dotnet-getting-started.gitからサンプルをダウンロードしたところ、それも機能します。私のプロジェクトとサンプル プロジェクトの cloudBlobClient オブジェクトを比較すると、何らかの奇妙な理由で、(私のプロジェクトの) blobClient に "AuthenticationHandler" と "Key" がなく、問題の原因となることがわかりました。ただし、これら 2 つの値はサンプル プロジェクトに存在します。

ここに画像の説明を入力

4

1 に答える 1