我开始在blobContainer.createIfNotExists上获得403错误。以下是源代码。
#include <thread>
#include <iostream>
class Boo
{
public:
void run()
{
int i = 10;
while(i--)
{
std::cout << "boo\n";;
}
}
};
class Foo
{
public:
void run()
{
t1 = std::thread(&Boo::run,boo); // threads already default constructed
t2 = std::thread(&Foo::user,this); // so need to *assign* them
}
void user()
{
int i = 10;
while(i--)
{
std::cout << "foo\n";;
}
}
~Foo()
{
t1.join();
t2.join();
}
private:
std::thread t1;
std::thread t2;
Boo boo;
};
int main()
{
Foo foo;
foo.run();
}
验证的事情:
预计升级库可能会解决问题:
例外截图如下:
更新
显然,我刚刚从https://github.com/Azure-Samples/storage-blob-dotnet-getting-started.git下载了样本,这也是有效的。当我比较我的项目中的cloudBlobClient对象和示例项目时,我发现由于一些奇怪的原因,我发现blobClient(在我的项目中)丢失了&#34; AuthenticationHandler&#34;和#34; Key&#34;哪会引起这个问题。但是这两个值存在于示例项目中。
答案 0 :(得分:2)
在blobContainer.createIfNotExists上获得403错误
我创建了一个示例来重现我的问题,代码可以正常安装WindowsAzure.Storage sdk
v8.1.0 到 v8.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会返回403错误,此SO thread进行了讨论。