我在标准的ASP.Net Web应用程序项目应用程序中使用System.Web.Routing而不用MVC的路由。这主要是为了在我们正在开发的门户中获得整洁的URL(而不是〜/ default.aspx?contentid = 123我们有〜/ {contentsubject}。门户没有授权,所有的信息都在url中,所以在缓存我们可以缓存整个页面Outputcache不能用于路由
当我试图启用输出缓存时,我注意到没有缓存被执行,看起来outputcache页面指令被完全忽略了,这是真的还是我错过了一些东西? ?
我做了一个小测试应用程序(我上传到http://www.4shared.com/file/196605919/31903b07/OutputCacheTest.html)只包含一个网页,WebForm1.aspx的,使用母版页和用户控制。所有三个输出的当前日期和时间。
当我请求http // localhost/OutputcacheTest/Webform1.aspx时,10秒缓存将按预期工作,即所显示的时间只会每10秒更新一次。
该应用程序还定义了一个通配符路由,它捕获所有请求并返回与处理程序相同的Webform1.aspx。因此,当请求http // localhost/OutputcacheTest/myroute时,执行相同的页面,但现在缓存不起作用,即当前时间显示在每个请求上。
注意:使用内置开发Web服务器时,两种方案都可以工作,只有IIS似乎有这个问题。
有没有人有解决方案或解决如何在这种情况下启用输出缓存?
感谢您的快速回答。问题是,因为我不使用MVC,只有路由,我没有OutputCacheAttribute,因为它在System.Web.Mvc命名空间中。 – MathiasR 2010-02-04 11:38:00
在这种情况下,我不确定什么是正确的行动方案。也许查看MVC的源代码,看看它是如何完成的,以及如何找到解决方法。 – 2010-02-04 11:55:43