2014-02-20 70 views
0

我们有一个虚拟URL/bundles。我们希望能够在.NET生命周期的某个时刻检查URL是以/ bundles开始,然后设置标题。我们考虑过使用HttpCachePolicy Class并使用setCacheability和setMaxAge。我想知道我们如何将它应用于通过/ bundles路由服务的任何文件?哪里是处理这个问题的最佳地点?如何为虚拟路径设置自定义缓存响应标头?

+0

我认为你最好创建一个Costum委托处理程序,并将其应用到/ bundles路由 – DmitryK

回答

1

听起来像你想要一个“不同”的缓存行为这条路线。

我假设你有一个特殊的控制器为这条路线。

如果是这样,那么你可以在控制器内的Action方法上使用OutputCache属性。

[OutputCache(Duration=[InSeconds], ...)] 
public ActionResult YourMethod() 
{ 
    ... 
} 

这将导致使用ASP.NET缓存框架。

可选:您可以使用您在IIS WebSite Konfiguration中设置的配置文件,然后您必须使用具有配置文件参数的属性。

[OutputCache(Profile="YOUR_PROFILE") 

IIS将添加相关的响应头喜欢到期/缓存控制/上次修改...

你也将获得输出缓存功能,它是一种性能提升。


但是,如果您希望对响应头进行“全面”控制,则必须创建自己的IIS处理程序,以覆盖输出方法。

因为如果您有一个启用的动态压缩,那么IIS将在ASP.NET生命周期中删除所有响应头并在压缩之后在ASP.NET进程之后添加“需要”的响应头。

MSDN上的某处是IIS缓存层的可视化。但是你必须在MSDN上进行“深入”搜索。我会给你一个链接,但这将需要更长的时间..;)

相关问题