使用Azure存储时,我发现如果您使用REST,可以设置timeout on blob operations和on table operations。
但是我们正在使用通过WindowsAzure.Storage NuGet包(v8.4.0)提供的C#客户端。而且我没有看到任何方法来指定超时
var storageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://127.0.0.1"); // local storage for testing
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("mycontainer");
container.CreateIfNotExists();
var blobReference = container.GetBlockBlobReference("my/blob.pdf");
我已尝试查看CloudBlobClient
和StorageAccount
上的可用属性/方法,但未找到任何类似超时设置的内容。
如果我可以在一个地方(在连接字符串中)设置timout并且在所有操作中使用它,那将是理想的。但是我如何在C#客户端中执行此操作?
答案 0 :(得分:5)
请查看ServerTimeout
类中的BlobRequestOptions
属性。所以您的代码将是:
var storageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://127.0.0.1"); // local storage for testing
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("mycontainer");
container.CreateIfNotExists(new BlobRequestOptions()
{
ServerTimeout = TimeSpan.FromSeconds(90)
});