Asp.net mvc3-在本地调试时如何停止清除HttpRuntime.Cache

Asp.net mvc3-在本地调试时如何停止清除HttpRuntime.Cache,asp.net,asp.net-mvc-3,Asp.net,Asp.net Mvc 3,我正在使用asp.NETMVC3。我们的应用程序大量使用HttpRuntime.Cache将数据存储在web服务器的内存中,以减少数据库调用 我的问题是,每次我在本地运行应用程序(VisualStudio中的F5)时,缓存都会被清除,导致从数据库中完全重新加载所有数据。i、 e.我运行一次,从数据库获取数据,然后停止。如果我在几秒钟后再次运行,缓存似乎已失效,数据库调用再次发生。我的暂停时间都在未来,所以不确定这里发生了什么 我真的只想在缓存真的为空时获取数据,而不是每次我在VS中按F5时获取数

我正在使用asp.NETMVC3。我们的应用程序大量使用HttpRuntime.Cache将数据存储在web服务器的内存中,以减少数据库调用

我的问题是,每次我在本地运行应用程序(VisualStudio中的F5)时,缓存都会被清除,导致从数据库中完全重新加载所有数据。i、 e.我运行一次,从数据库获取数据,然后停止。如果我在几秒钟后再次运行,缓存似乎已失效,数据库调用再次发生。我的暂停时间都在未来,所以不确定这里发生了什么

我真的只想在缓存真的为空时获取数据,而不是每次我在VS中按F5时获取数据。是否有方法关闭每次在本地运行时清除缓存的设置


谢谢

这是无法避免的。当您在VS中停止调试器,然后重新附加调试器时,它将回收工作进程。工作进程中缓存的任何内容都将被刷新,因为进程将以新的方式启动。

无法防止这种情况发生。当您在VS中停止调试器,然后重新附加调试器时,它将回收工作进程。工作进程中缓存的任何内容都将被刷新,因为该进程将重新启动。

每次停止调试时,它都会终止存储缓存的应用程序域。对此您无能为力,因为为了重新编译应用程序并启动新应用程序,您必须构建一个新的AppDomain。

每次停止调试时,它都会杀死存储缓存的应用程序域。对此,您无能为力,因为为了重新编译应用程序并启动新应用程序,您必须构建一个新的AppDomain。

如果您想在编译后仍保留缓存,我建议使用其他缓存框架(如或)将缓存置于进程之外。这些框架使用分布式缓存,将缓存存储在进程外,从而避免每次编译时缓存失效。

如果您希望在编译后仍保留缓存,我建议使用其他缓存框架(如或)将缓存置于进程外。这些框架使用分布式缓存,将缓存存储在进程外,从而避免每次编译时缓存失效。

只有选中“编辑并继续”设置(默认设置)时才是如此。如果此功能在Cassini和IIS Express中都关闭,则站点和应用程序域将在调试器停止/启动之间保持运行。许多人之所以关闭“编辑并继续”,就是因为这个原因。只有选中“编辑并继续”设置(这是默认设置)时,这才是正确的。如果此功能在Cassini和IIS Express中都关闭,则站点和应用程序域将在调试器停止/启动之间保持运行。许多人之所以关闭“编辑并继续”,就是因为这个原因。