【发布时间】:2015-10-28 02:06:38
【问题描述】:
我正在使用名为 Composite C1 的 CMS 系统。它通过单个页面 (Page.aspx) 呈现其所有内容,该页面附加了一个自定义输出缓存配置文件。
这一切都很好,但我遇到了问题。
我想要缓存,但我想禁用某些 URL 的输出缓存。
我知道可以添加到缓存配置文件中的 varybycustom 属性,但我不认为这会完全满足我的需求。我希望能够在访问特定 URL(或者可能是其他一些情况)时完全禁用缓存。
这似乎非常棘手,因为每个页面/url 都通过单个 Page.aspx 文件呈现,并定义了它的 outputcache 配置文件。
有人对我如何解决这个问题有任何建议吗?
【问题讨论】:
-
我想知道自定义 OutputCacheProvider 是否可能是一个潜在的答案。试图找到默认提供者的来源......这被证明是一项相当艰巨的任务,即使有反射也是如此。
-
您的其他页面是否也存在 OutputCache 指令??
-
好吧,除了管理页面,我并不担心。但是所有的前端都是通过 Page.aspx 呈现的。 Page.aspx.cs 读取 url,然后从数据存储中获取适当的页面并呈现它。所以所有的前端 URL 都使用相同的 aspx 页面进行渲染。
-
您说 Page.aspx.cs 会读取 url,然后获取相应的页面。所以这意味着有从 QueryString 推断的信息?像 ...aspx?id=5
-
不只是querystring no,更多的是跟URL解释有关。所有 URL 都通过同一个 Page.aspx 页面进行路由和呈现。这就是复合 C1 的工作原理。这实际上效果很好,但是很难控制缓存,因为它对所有页面都是开/关的。 :)
标签: asp.net caching outputcache c1-cms