如何防止IIS使用ASHX文件发送缓存头

时间:2012-02-29 20:41:30

标签: iis caching ashx

我的公司使用ASHX文件来提供一些动态图像。由于内容类型是image / jpeg,因此IIS会根据静态图像发送标题。

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

LastModified,ETag,Expires

导致浏览器将其视为可缓存,这会导致用户看到陈旧图像时出现各种错误。

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

2 个答案:

答案 0 :(得分:2)

我找到的解决方案只有:

1)向每个处理程序添加Response.ContentControl =“no-cache”。

我不喜欢这样,因为这需要更改所有处理程序,并让所有开发人员都知道它。

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

我不喜欢这个,因为它需要处理程序在他们自己的目录中。虽然这可能是一般的好习惯,但不幸的是我们的应用程序没有这样的结构,我不能只是移动它们,因为它会破坏面向客户的链接。

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

答案 1 :(得分:2)

将随机生成的字符串添加到请求查询中。这将欺骗浏览器认为它是一个不同的调用。示例:document.getElementById(“myimgcontl”)。src =“myimages.ashx?15923763”;。