gpt4 book ai didi

c# - 通过依赖注入(inject)使 CloudBlobClient 在应用程序生命周期中保持事件状态

转载 作者:太空狗 更新时间:2023-10-29 21:57:07 26 4
gpt4 key购买 nike

我想将 CloudBlobContainer 实例“容器”依赖注入(inject)到我的自定义类中。

问题是生命周期。我可以为 Per Web Request 或 As a singleton 做,因为当应用程序运行时,客户端永远不会改变。

我的问题是,由于 blobClient 保持某种开放连接,我是否应该预料到会出现问题?

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
ConfigurationManager.AppSettings["MyDataStorageConnectionString"]
);

CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mydata");

最佳答案

IIRC,Azure SDK 为您提供了面向对象的 API,使您免受通信详细信息的影响。您与 Azure 存储服务的通信方式是通过 HTTP(它们是 level 2 REST services ),因此保留 CloudBlobContainer 对象不会保持连接打开。

在 Web 应用程序的生命周期内保留 CloudBlobContainer 对象时,我从来没有遇到过问题。

仍然,根据 the documentation ,实例成员不保证线程安全,因此为了安全起见,您应该考虑为每个 Web 请求创建一个实例。

关于c# - 通过依赖注入(inject)使 CloudBlobClient 在应用程序生命周期中保持事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32904436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com