Asp.net IIS7:在特定文件上设置“远未来过期”标题

Asp.net IIS7:在特定文件上设置“远未来过期”标题,asp.net,iis-7,Asp.net,Iis 7,在IIS7中,我试图为所有文件名中包含特定单词的内容设置一个真正的“远未来过期”标题。例如,我想在从IIS7请求的任何文件上设置此头,该文件是 *cached*.js 我知道可以设置far future expires头,但我想知道是否可以在上面示例中的特定文件上设置它 我想在我试图提供的.NET应用程序上使用此方法,但我想使其更有效,以便某些文件将被缓存很长时间,因为它实际上从未更改同时,我不想被限制为对某个文件夹中的所有文件或某些类型的所有文件执行此操作。 我愿意通过修改Asp.Net应用

在IIS7中,我试图为所有文件名中包含特定单词的内容设置一个真正的“远未来过期”标题。例如,我想在从IIS7请求的任何文件上设置此头,该文件是

*cached*.js
我知道可以设置far future expires头,但我想知道是否可以在上面示例中的特定文件上设置它

我想在我试图提供的.NET应用程序上使用此方法,但我想使其更有效,以便某些文件将被缓存很长时间,因为它实际上从未更改同时,我不想被限制为对某个文件夹中的所有文件或某些类型的所有文件执行此操作。

我愿意通过修改Asp.Net应用程序来实现这一点,或者通过IIS7设置来实现这一点


伙计们,你们认为有什么方法可以做到这一点吗?

一个HttpModule可以让你们做到这一点。这将允许您查看传入的URL,然后添加正确的响应头

编辑:添加示例

您可以使用创建一个基本的HttpModule。然后在Application_BeginRequest事件中,我认为这段代码将接近您想要的:

if (context.Request.FilePath.ToLower().IndexOf("cached") != -1)
    context.Response.Cache.SetExpires(DateTime.Now.AddYears(1));

您知道我可以在哪里找到编写HttpModule的示例来开始工作吗?所以,没有像Apache中那样的声明式方法来完成这项工作?