ASP.NET Cache.SetCacheability(HttpCacheability.Public)没有设置标头

pat*_*ech 2 asp.net caching

我有一个HttpHandler(也作为ASPX页面完成此操作),它检索存储在数据库中的图像并将其写入响应.我已经在代码中添加了以下行,以尝试在浏览器中缓存图像,但每当我查看Firebug中的响应时,它总是具有"私有"的缓存控制头值.

Response.Cache.SetCacheability(HttpCacheability.Public)
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的事情,比如使用Response.ClearHeaders和Response.AddHeader()来手动添加"Cache-Control"标头值,但无济于事.有任何想法吗?

编辑:
更多信息:这是在HTTP处理程序(.ashx)中运行,我已经在我的本地IIS 5.1和托管网站上测试了它,我认为是IIS 6.

Ric*_*kNZ 6

页面是否有任何机会需要身份验证?运行时将强制Cache-Control:在需要身份验证的页面上保密,以防止在公共代理上意外缓存私有内容.

你在用卡西尼吗?如果是这样,它总是强制Cache-Control:private.如果是这样,您可能会尝试切换到IIS.

  • 页面是否有任何机会需要身份验证?运行时将强制Cache-Control:在需要身份验证的页面上保密,以防止在公共代理上意外缓存私有内容. (2认同)