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

我试图在我的网站中的所有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文件的每个请求都会生成一个包含当前日期和时间的新版本.

我究竟做错了什么?

谢谢.

最佳答案 也许这会有所帮助?

http://objectmix.com/dotnet/393333-output-caching-custom-http-handler.html

它似乎表明,由于您没有使用普通页面处理程序,因此不会调用输出缓存模块.

西蒙

点赞