无法在存储模拟器上创建azure blob容器

时间:2018-06-12 06:14:48

标签: azure azure-storage azure-storage-blobs azure-storage-emulator

我在使用c#.NET代码中的Azure存储模拟器时无法创建容器。

我正在使用:

var container = serviceClient.GetContainerReference("media");
container.CreateIfNotExists();`

它返回错误错误:

  

System.AggregateException:发生了一个或多个错误。 ---> Microsoft.WindowsAzure.Storage.StorageException:远程服务器返回错误:(403)Forbidden。 ---> System.Net.WebException:远程服务器返回错误:(403)Forbidden。      在System.Net.HttpWebRequest.GetResponse()

1 个答案:

答案 0 :(得分:0)

添加以下行:

request.UseDefaultCredentials = true;

这将允许应用程序使用登录用户的凭据来访问该站点。如果它返回403,显然它需要进行身份验证。

您(现在?)在您和远程站点之间有一个身份验证代理也是可能的。在这种情况下,请尝试:

request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials;

您可以在app.config中设置连接字符串storage emulator

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>

如果要使用帐户名和密钥连接到存储模拟器,则需要提供其他详细信息,例如不同的端点。

var connectionString = @"DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
    BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
    TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
    QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;";

此值与上面显示的快捷方式UseDevelopmentStorage=true相同。