我们有一个虚拟URL / bundles。我们希望能够在.NET生命周期的某个时刻检查url是否以/ bundles开头,然后设置标头。我们考虑过使用HttpCachePolicy类并使用setCacheability和setMaxAge。我想知道我们如何将它应用于通过/ bundles路由提供的任何文件?处理这个问题的最佳地点在哪里?
答案 0 :(得分:1)
听起来你想要这条路线的“不同”缓存行为。
我假设您为此路线设置了一个特殊的控制器。
如果是这样,那么您可以在Controller内的Action Methods上使用OutputCache属性。
[OutputCache(Duration=[InSeconds], ...)]
public ActionResult YourMethod()
{
...
}
这将导致使用ASP.NET缓存框架。
可选:您可以使用在IIS WebSite Konfiguration中设置的配置文件,然后必须将该属性与配置文件参数一起使用。
[OutputCache(Profile="YOUR_PROFILE")
IIS将添加相关的响应标头,如Expire / Cache-Control / Last-Modified ...
此外,您还可以获得性能提升的输出缓存功能。
<小时/> 但是,如果要对响应头进行“完全”控制,则必须创建一个自己的IIS处理程序,在其中覆盖输出方法。
因为如果您启用了动态压缩,那么IIS将在ASP.NET生命周期中删除所有响应标头,并在压缩后添加“所需”响应标头,这是在ASP.NET进程之后发生的。
MSDN上的某个位置是IIS缓存层的可视化。但是你必须在MSDN上进行“深度”搜索。我会给你一个链接,但这需要更长的时间..;)