gpt4 book ai didi

c# - 在缓存中丢失我的对象

转载 作者:行者123 更新时间:2023-11-30 23:42:40 27 4
gpt4 key购买 nike

我正在使用 IIS7、c# 和 mysql。我用sql关键字将一些对象放入asp.net缓存系统。它具有非常简单的逻辑。使用给定的 sql 关键字将选定的数据集放入缓存。

问题来了。当我用 www.abc.com 调用我的网站时,它工作正常。第二次单击后在 abc.com 中冲浪时,首先填充的数据集变为空数据集,我的网站开始显示空列表。

我尝试将键更改为一些静态词并复制数据集然后缓存它们,但到目前为止没有成功。

希望我解释得很好。 http://beta.mpazari.com是您喜欢查看的地方,红色框下拉列表是列表中应该已填充数据的地方。

这是我的填充函数

public void Fill(ref DataSet ds, string sql, DateTime? cacheTime, string key)
{
if (key == null) key = sql;
if (cacheTime == null) cacheTime = DateTime.Now.AddMinutes(generalCacheExpiarionTimeInMinutes);
if (cache[key] != null) { ds = (DataSet)cache[key]; return; }
MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["motorConnectionString"].ConnectionString);
try
{
conn.Open();
MySqlDataAdapter myda = new MySqlDataAdapter(sql, conn);
if (ds == null) ds = new DataSet();

ds.Clear();
myda.Fill(ds);
cache.Insert(key, ds.Copy(), null, cacheTime.Value, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.NotRemovable,null);
}
finally
{
conn.Close();
}
}

提前致谢。

最佳答案

您使用的是哪个缓存? ASP.NET 有几个可以缓存的地方...我怀疑您可能会将其放入在每个请求结束时处理的缓存中。

看看这些...
http://msdn.microsoft.com/en-us/library/system.web.httpcontext.cache.aspx
(上下文缓存...在应用程序域的生命周期内持续存在)

http://msdn.microsoft.com/en-us/library/system.web.httpcontext.items.aspx
(请求缓存...一直持续到请求结束)

关于c# - 在缓存中丢失我的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1665520/

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