C# ashx文件的输出(服务器端)缓存

C# ashx文件的输出(服务器端)缓存,c#,asp.net,outputcache,ashx,C#,Asp.net,Outputcache,Ashx,我正在尝试在我的站点中的所有ashx文件上启用输出缓存。我试图阻止服务器在每次请求时生成文件,而不是告诉浏览器缓存文件 我将ashx文件提炼为以下简单代码: public class DefaultStyles : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/css"; StringBui

我正在尝试在我的站点中的所有ashx文件上启用输出缓存。我试图阻止服务器在每次请求时生成文件,而不是告诉浏览器缓存文件

我将ashx文件提炼为以下简单代码:

public class DefaultStyles : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/css";
        StringBuilder styleSheet = new StringBuilder();
        styleSheet.AppendLine(string.Format("/* Generated: {0}, {1} */", DateTime.Now.ToShortDateString(),                                                DateTime.Now.ToLongTimeString()));
        context.Response.Write(styleSheet.ToString());
    }
}
在我的web.config文件中,我有:

<system.webserver>
    <caching enabled="true">
      <profiles>
        <add extension=".ashx" policy="CacheForTimePeriod" duration="00:01:00"  />
      </profiles>
    </caching>
</system.webserver>

尽管如此,我对ashx文件的每个请求都会生成一个包含当前日期和时间的新版本

我做错了什么

谢谢。

也许这会有帮助

这似乎表明,由于您没有使用正常的页面处理程序,因此不会调用输出缓存模块


Simon

实际上,我做的每件事都是对的,只是没有在正确的环境中进行测试。一旦我在iis7服务器上部署了上面的简单示例,上面的代码就可以正常工作了。应该注意的是,这在我们的IIS 6服务器上不起作用。我没有意识到这是一项仅在IIS 7中可用的新功能

您使用的是什么版本的web服务器?我刚刚测试了它,它在IIS7.5上运行良好。您还可以显示处理程序配置设置吗?您知道了,我正在VS developer web服务器中进行测试。一旦我在iis7服务器上部署了上面的简单示例,上面的代码就可以正常工作了。应该注意的是,这在我们的IIS 6服务器上不起作用。我没有意识到这是一个新的功能,只有在IIS 7