1

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

我在用:

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

它返回错误错误:

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

4

1 回答 1

0

添加以下行:

request.UseDefaultCredentials = true;

这将让应用程序使用登录用户的凭据来访问该站点。如果它返回 403,显然它正在等待身份验证。

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

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

您可以在 app.config 中设置存储模拟器的连接字符串:

<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

于 2018-06-12T06:28:23.213 回答