问题标签 [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 投票
2 回答
2169 浏览

asp.net-mvc - 在 ASP.NET MVC 中使用 HttpRuntime.Cache 是否发生了变化?

因此,在准备对控制器进行单元测试时,我正在查看我的标准缓存实用程序,并想,嘿,访问 HttpRuntime.Cache 在 MVC 中直接被认为是有害的吗?

我将缓存包装在一个代理类中,该类实现了一个类似缓存的接口(虽然简单得多),这样我就可以在测试期间模拟它。但我想知道这是否已经在新框架中为我完成了。但是,我什么也找不到。

这是我如何做的一个想法:

那么,访问缓存的旧模式是否发生了变化?在 MVC 中缓存操作结果是否有更好的模式?

0 投票
2 回答
4818 浏览

c# - 如何获取 HttpRuntime.Cache 中对象的大小?

我目前在 ASP.NET HttpRuntime.Cache 中存储了许多不同类型的对象,我想知道是否有办法确定每个对象有多大?

0 投票
3 回答
15505 浏览

c# - HttpRuntime.Cache[] 与 Application[]

我知道大多数人推荐使用 HttpRuntime.Cache 因为它具有更大的灵活性……等等。但是如果您希望对象在应用程序的整个生命周期内都保留在缓存中怎么办?使用 Application[] 对象来缓存东西有什么大的缺点吗?

0 投票
4 回答
24220 浏览

c# - HttpRuntime.Cache 最佳实践

过去,我锁定了访问 HttpRuntime.Cache 机制。我不确定我过去是否真的研究过这个问题并且盲目地用锁包围了它。

你觉得这真的有必要吗?

0 投票
3 回答
6800 浏览

asp.net - HttpRuntime Cache 和 HttpContext Cache 有什么区别?

我知道这里有一个非常相似的问题但我希望能得到更好的解释。如果 HttpContext 真的在幕后使用 HttpRuntime.Cache,为什么我会使用 HttpContext.Cache 而不是 HttpRuntime.Cache?

使用 ASP.NET 模拟 Windows 服务来运行计划作业的文章中, Omar 使用 HttpContext 来存储他的缓存项,但是当 Jeff Atwood在这里实现它时,他选择使用 HttpRuntime。显然,在这种特殊情况下,这是有道理的,因为您不必执行 Web 请求即可将缓存项添加回 HttpContext。

但是,我正在寻找一些关于何时使用一种与另一种的良好指示。

0 投票
1 回答
1044 浏览

wcf - IIS 中托管的 WCF 服务 - 似乎无法缓存或保留状态?

我正在尝试缓存一些仅在应用程序启动时才需要实例化的应用程序数据。我尝试过使用 HttpRuntime.Cache,创建一个仅在服务启动时才实例化的静态对象,并且我尝试过使服务单例并使用全局变量。每次有新请求命中服务时,我都会失去状态......我想我可以将 WCF 服务创建为 Windows 服务,但我很想弄清楚这里发生了什么......我看到只有一个 IIS 工作进程是产卵,但我猜它每次都在卸载和重新加载服务。

我是否缺少一些 WCF 配置或可能没有在 IIS 中正确设置它?它在 IIS 中作为普通的 2.0 网站运行。

这是我在这里的第一篇文章,如果有人可以告诉我如何发布我的 app.config XML,我会...我认为 stackoverflow 正在尝试将其解析为 HTML,它不会显示。

谢谢!蒂姆

0 投票
2 回答
2218 浏览

iis - 在两个 IIS 应用程序之间共享 HttpRuntime.Cache

我在 IIS 中有两个 ASP.NET 2.0 应用程序;公共预订系统和管理价格的管理系统。有一个访问数据库的共享 DLL 项目,供两个应用程序使用。

为了提高性能,价格被缓存在 DLL 代码中,以节省每次请求时访问数据库的时间。但是,当管理员更改价格时,缓存会在管理应用程序上刷新(显然它不会在公共应用程序上刷新)

所以,对于这个问题。是否可以配置 IIS 使这两个应用程序共享 HttpRuntime.Cache?如果是这样,它应该如何设置?

0 投票
2 回答
905 浏览

asp.net - 我可以在应用程序之间共享 HttpRuntime.Cache 吗?

我有一个这样的网站设置:

/Web——这是面向客户端的站点
/Web/Admin——这是后端系统,设置为虚拟应用程序

我正在使用 HttpRuntime.Cache 来缓存对数据库的调用。我想要做的是从 /Web/Admin 站点清除 /Web 站点上缓存的内容。尽管 HttpRuntime.Cache 似乎是每个应用程序的单个实例。无论如何,不​​使用分布式缓存系统。

0 投票
1 回答
3995 浏览

c# - 缓存键导致错误“对二进制补码的最小值求反无效。”

这是我见过的最奇怪的错误之一。

我正在做一个非常简单的调用来从 HttpRuntime 缓存返回值。电话是:

如果它返回null,那很好。我检查返回值是否为 null 并采取相应措施。我已经使用这个电话很长时间了。

最近,由于某种原因,当 cacheKey 设置为这个确切值时:

抛出 System.OverflowException:取反二进制补码的最小值无效。

呼叫、相关代码或服务器没有任何变化。如果 cacheKey 有稍微不同的字符,它工作得很好。例如,这个 cacheKey 返回 null 而不抛出任何异常:

请注意,这两个字符串之间的唯一区别是时间字符:2010-08-31-20-00-00 与 2010-08-31-21-00-00。

为什么这会有什么不同?为什么现在这么久了?

堆栈跟踪是:

我尝试将缓存调用更改为使用 HttpRuntime.Cache 代替(即。HttpRuntime.Cache[cacheKey]),但这没有任何区别。我知道它是相同的底层缓存提供程序,但我认为不同的调用可能会有所不同。没有骰子。

0 投票
1 回答
2249 浏览

asp.net - ASP.NET:保存 WebConfigurationManager 时,HttpRuntime.Cache 被刷新——这是一个错误吗?

最近,我一直在尝试缓存对象,HttpRuntime.Cache我通常的印象是,如果我像这样“添加”一些东西到缓存中:

“NotRemovable”和“NoExpiration”标志将在应用程序期间将对象保留在内存中。但是发现在某些页面请求结束时, HttpRuntime.Cache 将完全为空!

通过跟踪并在我的回调“FileChanged”中设置断点,我可以看到确实有些东西正在“删除”我的对象(以及缓存中的所有其他对象),但我不知道为什么。所以最终,我开始禁用我认为可能会影响这个子系统的其他东西。

最后,我注释掉了这一行:

我主要从 AppSettings 区域的“web.config”中检索数据,但偶尔会写回 AppSettings 并使用上述命令保存更改。我从阅读中知道“web.config”被缓存了,但是将我的更改保存回它不应该刷新所有的 HttpRuntime.Cache,对吧?

这是一个错误吗?或者这两个缓存是否以某种我应该知道的方式链接在一起?

编辑:

好的,如果有人想在自己的机器上尝试这个,我已经让这个超级重现。(我正在运行针对 .NET 3.5 的带有 MVC2 的 VS2008 Pro)只需启动一个新的 MVC2 项目并将以下内容粘贴到HomeController已经存在的内容中:

然后按照以下步骤操作:

  1. 在调试模式下启动应用程序。
  2. 点击“关于”链接。这会将字符串加载到缓存中。
  3. 点击“主页”链接。字符串从缓存中拉出并卡在 ViewMessage 字典中。一些键/值对被写入 web.config 并保存。缓存中的字符串应出现在主页上。
  4. 再次单击“主页”链接。应该从缓存中提取字符串,但事实并非如此。
  5. 停止程序。注释掉以“Config”开头的 3 行。重新启动程序。
  6. 再次尝试步骤 1 到 4。注意 HttpRuntime.Cache 没有被清空。

很奇怪吧?