gpt4 book ai didi

c# - 如何将 DataCacheFactory 与 Azure 缓存(共存)重用

转载 作者:行者123 更新时间:2023-12-03 01:56:20 25 4
gpt4 key购买 nike

我已经部署了具有共置缓存的 Azure WebRole。我正在为客户端使用以下默认配置。

<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="[name]" />
<!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
</dataCacheClient>

目前我每次访问缓存时都会运行以下代码

DataCacheFactory CacheFactory = new DataCacheFactory();
_Cache = CacheFactory.GetDefaultCache();

这会导致我的应用程序池频繁终止。如何DataCacheFactory并在需要时重新使用它。

提前致谢

最佳答案

我建议您使用ASP.NET Application State保留 DataChache Factory 对象。

您可以编写一个辅助类来获取数据缓存工厂对象。类似的东西(从未测试过):

public class DataCacheHelper
{
public DataCacheHelper()
{
DataCacheFactory factory = new DataCacheFactory();
HttpContext.Current.Application.Lock();
HttpContext.Current.Application["dcf"] = factory;
HttpContext.Current.Application.Unock();
}

public DataCacheFactory GetFactory()
{
var factory = HttpContext.Current.Application["dcf"];
if (factory == null)
{
factory = new DataCacheFactory();
HttpContext.Current.Application.Lock();
HttpContext.Current.Application["dcf"] = factory;
HttpContext.Current.Application.Unock();
}
return factory;
}
}

或者,如果您使用的是 ASP.NET MVC - 您可以创建一个基本 Controller 类,该类具有 GetCacheFactory 方法(这正是辅助方法的作用),并让所有 Controller 继承此基本类而不是框架类。 Web 表单也可以实现同样的效果。

关于c# - 如何将 DataCacheFactory 与 Azure 缓存(共存)重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16828886/

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