我正在尝试在我的网站中的所有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文件的每个请求都会生成一个包含当前日期和时间的新版本。
我做错了什么?
感谢。
答案 0 :(得分:1)
也许这会有所帮助?
http://objectmix.com/dotnet/393333-output-caching-custom-http-handler.html
似乎表明,由于您没有使用普通页面处理程序,因此不会调用输出缓存模块。
西蒙
答案 1 :(得分:1)
我实际上做的一切都是正确的,只是没有在合适的环境中进行测试。一旦我在IIS 7服务器上部署了上面的简单示例,它就按预期使用上面的代码工作了。应该注意,这个DID不适用于我们的IIS 6服务器。我没有意识到这是IIS 7中唯一可用的新功能