我的公司使用 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/