C# 我能否以编程方式处理webforms中的缓存页面

C# 我能否以编程方式处理webforms中的缓存页面,c#,asp.net,asp.net-4.0,C#,Asp.net,Asp.net 4.0,例如,我的主页显示了一些最新的产品。我想将此页面设置为无限期缓存,然后当我创建新产品时,我可以在代码中删除缓存的页面,而不是缓存一段时间,并希望用户看到最新的内容 另外,一旦我清除了缓存,我是否可以使用HttpWebRequest调用那些要再次缓存的页面,以便用户不必这样做 我知道我可以使用部分页面缓存,但我真的不想把我的页面分解成用户控件 注意:我确实可以访问服务器和IIS。如果您使用的数据库是SQL server,您可以使用SQL cache dependency(SqlCacheDepen

例如,我的主页显示了一些最新的产品。我想将此页面设置为无限期缓存,然后当我创建新产品时,我可以在代码中删除缓存的页面,而不是缓存一段时间,并希望用户看到最新的内容

另外,一旦我清除了缓存,我是否可以使用HttpWebRequest调用那些要再次缓存的页面,以便用户不必这样做

我知道我可以使用部分页面缓存,但我真的不想把我的页面分解成用户控件


注意:我确实可以访问服务器和IIS。

如果您使用的数据库是SQL server,您可以使用SQL cache dependency(
SqlCacheDependency
)进行缓存,它使您能够缓存依赖于数据库数据的页面。一旦数据库表中的数据发生更改,缓存就会失效,下次将生成新页。。。
有关更多信息和示例,请访问以下链接:如果您在页面上没有任何导致回发的操作(如提交等),您也可以从www.asp.net下载视频教程

在页面的Render sub中,获取页面内容字符串并将其设置到应用程序[“YourKey”]。(第一次通话时)

之后,在Page_Init中,您只需检查应用程序[“YourKey”]是否有值,如果有,则使用response.write(应用程序[“YourKey”])


当您想重置缓存时,只需将应用程序[“YourKey”]设置为无。

上周我在桌面上重新安装了Windows和所有开发人员的东西,我注意到IIS7现在有一个动态缓存模式。默认情况下不安装它。这里有一些信息。希望能有帮助


我认为这种方法的工作原理是在web.config中设置轮询间隔。这可能是我将采用的方法,但是在我的代码中手动执行此操作可以在一天内节省数百甚至数千个db请求。