我在使用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()
答案 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
相同。