问题标签 [httpruntime.cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
31367 浏览

c# - 我应该使用 HttpRuntime.Cache 吗?

我是 asp.net 的初学者,并且有一些关于缓存的问题:

  1. HttpRuntime.Cache 只提供了几个方法,我想我可以自己用 Dictionary 实现这些方法。
  2. 如果 HttpRuntime.Cache 比 Dictionary 好得多,为什么有些人想实现自己的缓存框架。
  3. MS企业缓存块怎么样?
0 投票
4 回答
4609 浏览

c# - Null 作为 HttpRuntime.Cache.Add 中的值

我想为某些键存储空值,HttpRuntime.Cache因为我不想再次去数据库发现该键没有条目。

所以第一次,它进入数据库并填充缓存。目的是使用缓存数据而不是进行数据库调用来服务以下调用。

这是我正在使用的代码:

最后一行代码,即 HttpRuntime.Cache.Add 抛出 System.ArgumentNullException: Value cannot be null。

知道这是否可能,或者我需要使用其他数据结构来存储空值并稍后查找?

0 投票
3 回答
820 浏览

c# - c#:HttpRuntime.Cache 产生无效的强制转换异常

以下如何产生“无效的强制转换异常”???

(对于那些问我为什么要这样做的人:我在缓存中/从缓存中随机添加和删除一些不同的对象,因此需要进行这种测试。我计划创建某种容器对象来保存我的各种对象;我只会将这个对象推送到缓存中,但问题仍然存在:它会解决强制转换异常吗?)

0 投票
1 回答
868 浏览

asp.net - ASP.NET (MVC3) - HttpRuntime.Cache - 键间歇性存在

我有一个非常奇怪的问题,我完全感到困惑。

我有一段代码可以解析一些数据并使用 Insert 方法将结果存储在我们的网络服务器的 HttpRuntime.Cache 中。这将存储 10 秒。似乎有一些问题,所以我创建了一个测试页面,它从缓存中检索一个简单的对象并显示它是否为空。要将对象添加到缓存中,我使用:

HttpRuntime.Cache.Insert(CHECK_KEY, new object(), null, DateTime.Now.AddSeconds(10), System.Web.Caching.Cache.NoSlidingExpiration);

在测试页面中,我尝试检索对象:

var isInCache = this.cacheService.Get<object>(CHECK_KEY) != null;

cacheService 的方法是:

现在奇怪的部分。如果我调用一个调用“Insert”方法的 URL,并转到我的测试页面来检索它,那么大约 99% 的时间isInCache是的值。false有时它在整个 10 秒内都能正常工作(例如,我每秒刷新我的测试页面,我得到true10 次)但同样,大部分时间它只是返回false。现在,当我按住 F5 时,有时我会在输出中看到true,眨眼间,这意味着可以找到密钥!这不是一些浏览器缓存,因为它只会true在 10 秒的缓存持续时间内间歇性闪烁,之后它只会显示 false(这是合乎逻辑的,因为密钥已过期)。所以我的问题是:

  • 为什么大多数时候从缓存中检索一个简单的对象会失败?
  • 缓存中的其他项目(在同一测试页面上)确实会被检索到,而不是那个对象。

更糟糕的是,这(当然!)在我的本地机器上完美运行,在测试机器上,而不是生产。我很无知。请帮忙 :-)

编辑: 好的,所以我现在在两种不同的浏览器中进行测试,IE9 和 Chrome ......并且 IE9 正确显示了 HttpRuntime.Cache 中的项目,但 Chrome 不是。它总是显示 false 并且没有其他缓存数据,除非按住 F5 时偶尔会显示它。从什么时候开始依赖 HttpRuntime.Cache 浏览器???额外编辑:IE9 不再显示缓存数据。因此,虽然它可能因浏览器而异,但这并不是说 IE 总是可以工作,而 chrome 不能……它不同。

EDIT2: 所以我使用 ViewData 将变量传递给我的视图:

Machinename 来自 Server.MachineName,isInCache 是对象,变量 A 不是来自 HttpRuntime.Cache,变量 B 是,它也间歇性地不存在。

0 投票
1 回答
250 浏览

c# - 全局缓存对象不断添加项目

我注意到在我的 ASP.NET Web 应用程序中,内部全局缓存对象不断添加以下项目:System.Web.Script.Services.WebServiceData:/mypages/default.aspx。请注意,我确实有一个包含 default.aspx 的文件夹“mypages”。为什么这个页面在我访问它的那一刻就被添加到 ASP.NET 缓存中?在详细调试时,我注意到缓存中添加了更多页面。为什么 ASP.NET 在缓存中添加我的应用页面链接?

0 投票
2 回答
1251 浏览

c# - 从其他线程访问 HttpRuntime.Cache

我有一个线程在我的 ASP.Net 后面运行。在这个线程中,我将数据放入缓存中,如下所示:

在另一个线程(网页)上,我首先检查缓存是否包含任何数据,然后尝试从缓存中获取对象,如下所示:

编辑:每次我尝试做var test = (string)HttpRuntime.Cache["test"];缓存时都会变空(或者会删除对象,没有在缓存中测试多个对象)加上var test也是空的。这当然是当 HttpRuntime.Cache.Count 大于 0 时

哦,它没有给出任何例外或任何东西

0 投票
2 回答
949 浏览

asp.net - 过期时多线程删除 HttpRuntime.Cache 项

即使我使用 lock 和静态 locker 对象来锁定我的代码同时访问同一个项目,我如何保证在我的 lock 期间 HttpRuntime 不会从另一个线程中删除该项目?我在 HttpRuntime 或 HttpRuntime.Cache 中看不到任何 SyncRoot 属性。

如果我指定过期回调并将我的静态储物柜对象锁定在该回调中,这样做是否合适?

在回调中锁定 HttpRuntime.Cache 过期线程是不是很糟糕?

0 投票
1 回答
1441 浏览

asp.net - HttpRuntime.Cache 在客户端/服务器端进行缓存

我在 asp.net Web 应用程序的 global.asax 文件中声明的 HttpRuntime.Cache 是否在客户端或服务器端进行缓存?

还有我们可以为这段代码设置滑动过期的任何机会吗?

提前致谢。

编辑: 经过深思熟虑,我认为这将是可能的解决方案。

为整个 asp.net Web 应用程序放置一个 basePage 类,其中所有 system.web.ui.page 都将从该类继承。

和下面的代码

0 投票
3 回答
2092 浏览

c# - 以只读方式读取 HttpRuntime.Cache 项

我正在使用 aHttpRuntime.Cache来存储将在会话中频繁访问的对象列表。

我使用以下代码行从缓存中获取项目:

但是,不幸的是,当我更新_chartData时,它也会更新缓存的项目。

我怎样才能简单地获取缓存项目的副本?

0 投票
2 回答
673 浏览

asp.net-mvc-3 - c# asp.net MVC缓存

我正在使用 HttpRuntime.Cache 来存储我的站点缓存。问题是每当我想上传新的更新编译版本时,网站的缓存都会被删除。我很想知道克服这个问题的方法。提前感谢所有亲爱的助手。