4

我们有一个现有的 asp.net 4.0 网站,它使用 HttpRuntime.Cache 做很多事情。它是在我开始工作之前这样创建的,现在我们遇到了缓存被清除和网站崩溃的问题,因为它总是希望缓存在那里(我知道......他们认为缓存是什么!?)。

所以我需要的是一个永久的替换缓存,这样我就可以将它换成 HttpRuntime.Cache 而不会影响网站。我看过序列化,但并不是所有的对象都是可序列化的,并且不能让它们全部可序列化(它们中有太多分散在各处)。

有没有办法将内存中的任何对象/变量/任何东西保存到磁盘,然后再读取它,而不必序列化它?

更新:

感谢您迄今为止的评论和回答。从你的想法开始,我做了更多的谷歌搜索,发现这篇文章演示了(通过一个可以下载的示例解决方案)如何在 .Net 4.0 中使用你自己的自定义缓存提供程序。我还不能将它集成到我们的 Web 应用程序中并对其进行适当的测试(希望今天晚些时候我能够),但我想我会把它放在这里看看你是否有任何想法。 ..那么你怎么看,我应该注意什么警告?或者这是一个可行的(而且非常临时的)解决方案?

Web 和非 Web 应用程序的基于文件的缓存以及扩展 ASP.NET 4.0 OutputCacheProvider

4

2 回答 2

5

您可以使用反射编写自己的“序列化”,获取所有原始字段并将其保存为类路径和值。这将是长时间的操作,但您可以将类保存为文件。更好的解决方案是使用真正的序列化。

于 2012-11-19T06:50:29.743 回答
0

这个链接确实有效,所以这将是我的答案。感谢大家的帮助!

Web 和非 Web 应用程序的基于文件的缓存以及扩展 ASP.NET 4.0 OutputCacheProvider

于 2012-12-02T22:04:27.700 回答