C# ashx文件的输出(服务器端)缓存
我正在尝试在我的站点中的所有ashx文件上启用输出缓存。我试图阻止服务器在每次请求时生成文件,而不是告诉浏览器缓存文件 我将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
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