iis - 如何防止 IIS 发送带有 ASHX 文件的缓存 header

标签 iis caching ashx

我的公司使用 ASHX 文件来提供一些动态图像。由于内容类型是 image/jpeg,IIS 会发送适合静态图像的 header 。

根据设置(我不知道涉及的所有设置,因此有问题), header 可能是以下任何一个:

最后修改时间、ETag、过期

导致浏览器将它们视为可缓存,这会导致用户看到陈旧图像的各种错误。

是否可以在某处设置一个设置,使 ASHX 文件的行为方式与其他动态页面(如 ASPX 文件)相同?除此之外,是否有一个设置允许我全面删除 LastModified、Etag、Expires 等并添加一个无缓存 header ?

最佳答案

我找到的唯一解决方案是:

1) 将 Response.ContentControl = "no-cache"添加到每个处理程序。

我不喜欢这样,因为这需要更改所有处理程序并且所有开发人员都意识到这一点。

2) 在处理程序所在的文件夹上设置 HTTP header 覆盖

我不喜欢这个,因为它要求处理程序位于它们自己的目录中。虽然这通常可能是一个很好的做法,但不幸的是我们的应用程序不是这样构建的,我不能直接移动它们,因为这会破坏面向客户的链接。

如果没有人提供更好的答案,我将不得不接受这是唯一的两个选择。

关于iis - 如何防止 IIS 发送带有 ASHX 文件的缓存 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9506290/

相关文章:

.htaccess - 如何使用 htaccess 将 fontawesome 放入缓存中

asp.net - 通过调用.ashx页面下载文件

asp.net-mvc - IIS 6.0 突然显示目录列表而不是 MVC 3 应用程序

caching - Varnish 禁令永远留在禁酒令中

java - 将数据保存在内存中,设计方法

c# - 如何正确使用 javascript 反序列化将 json 字符串转换为复杂对象?

c# - 如何在 ashx webHandler ASP.NET 3.5 中读取 postdata

redirect - 301 重定向最佳实践 - 多个站点到单个站点

iis - 如何使用 cscript 和 vbs 参数从 Inno Setup 脚本调用 vbs 脚本?

javascript - base64 javascript 不在 iis 上运行,在某些浏览器中也是如此,为什么?