我在标准 ASP.Net Web 应用程序项目应用程序中使用来自 System.Web.Routing 的路由而不使用 MVC。这主要是为了在我们正在开发的门户中获得更整洁的 url(而不是 ~/default.aspx?contentid=123 我们有 ~/{contentsubject}。门户未经授权,所有信息都在 url 中,因此在缓存中场景我们可以缓存完整的页面。
当我尝试启用输出缓存时,我注意到没有进行缓存。似乎 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 似乎有这个问题。
有没有人有解决方案或解决如何在这种情况下启用输出缓存?