我想依赖将CloudBlobContainer实例“容器”注入我的自定义类。
问题是生命。我可以为Per Web Request或者作为单身人士做,因为该客户端在应用程序运行时永远不会改变。
我的问题是我应该预料到问题,因为blobClient会保持一种开放连接吗?
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
ConfigurationManager.AppSettings["MyDataStorageConnectionString"]
);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mydata");
答案 0 :(得分:1)
IIRC,Azure SDK为您提供了一个面向对象的API,可以保护您免受通信细节的影响。您与Azure存储服务进行通信的方式是通过HTTP(它们是level 2 REST services),因此保留CloudBlobContainer
对象不会保持连接打开。
在Web应用程序的生命周期内,我一直没有遇到过CloudBlobContainer
个对象的问题。
仍然,根据the documentation,实例成员不保证是线程安全的,所以为了安全起见,您应该考虑为每个Web请求设置一个实例。