C# 如何在internet explorer中从缓存中删除视频文件

C# 如何在internet explorer中从缓存中删除视频文件,c#,flash,internet-explorer,iis,C#,Flash,Internet Explorer,Iis,在internet explorer中,我在“工具”->“internet选项”->(浏览历史记录)设置中设置了“每次访问网页”选项,这样可以确保每次访问flash播放器中的视频时,都从服务器获取视频 但是,如果我将设置设置为“自动”,则不会从服务器返回视频,并使用缓存副本。我尝试使用Web.config中的clientCache设置(即useMaxAge/UserExpires/DisableCache),但视频在第一次请求时返回,但在播放缓存版本后返回 在Fiddler中,我可以看到对视频的

在internet explorer中,我在“工具”->“internet选项”->(浏览历史记录)设置中设置了“每次访问网页”选项,这样可以确保每次访问flash播放器中的视频时,都从服务器获取视频

但是,如果我将设置设置为“自动”,则不会从服务器返回视频,并使用缓存副本。我尝试使用Web.config中的clientCache设置(即useMaxAge/UserExpires/DisableCache),但视频在第一次请求时返回,但在播放缓存版本后返回

在Fiddler中,我可以看到对视频的第一个请求,之后只播放缓存版本,因此没有http请求

因此,使用临时文件的“自动”设置,我如何每次从服务器返回视频

编辑

很明显,正如Eric提到的,这是一个缓存问题,而不是Flash播放器或IE问题

我与fiddler进行了核对,标题如下:

HTTP/1.1200ok 内容长度:76278442 内容类型:视频/mp4 最后修改:2013年8月21日星期三08:47:29 GMT ETag:“2117329216” 服务器:Microsoft IIS/7.5 X-Mod-H264-流媒体:版本=2.2.7 X-Powered-By:ASP.NET 日期:2013年8月22日星期四格林尼治标准时间07:42:23

fiddler中的缓存选项卡告诉我:

HTTP/200响应在默认情况下是可缓存的,除非存在Expires、Pragma或缓存控制头并且禁止缓存。 存在HTTP/1.1 ETAG标头:“2117329216” HTTP上次修改的标头存在:周三,2013年8月21日08:47:29 GMT

未提供明确的HTTP过期信息。大多数浏览器使用启发式过期策略: 上次修改和日期之间的差值的10%为'02:20:50.5000000',因此此响应将试探性地过期22/08/2013 11:52:54

因此,我尝试了web.config中条目的所有组合,但我似乎无法添加缓存控制:无缓存头,以便IE尊重它,而不使用它自己的启发式算法

不确定这是否与此有关,但在上传视频时,我们会在主虚拟文件夹“归档”下创建文件夹

文件夹结构的格式为:Archives/Archive1/0000/01/MP4/High,例如,每次上传时数量都会增加

因此,在web配置中,我有:

 <location path="Archives">
   <system.webServer>
     <staticContent>
        <clientCache cacheControlMode="DisableCache" />
     </staticContent>
   </system.webServer>
 </location> 

但是没有添加缓存控制头

我甚至尝试引用一个特定的文件夹:

  <location path="Archives/Archive1/0000/22/MP4/High">
    <system.webServer>
         <staticContent>
           <clientCache cacheControlMode="DisableCache" />
         </staticContent>
   </system.webServer>
 </location> 

仍然没有添加头(尽管在IIS中,当我检查目录Archives/Archive1/0000/22/MP4/High时,我可以在“High”文件夹上单击“set Common Headers”时看到设置的头)

有什么想法吗


我在回复“服务器:Microsoft IIS/7.5 X-Mod-H264-Streaming”中注意到,这与缓存问题有关吗?

用户的问题更恰当地表述为:“自动意味着什么,以及如何在每次使用时重新下载我的内容?”答案如下:。您需要适当地设置缓存头;使用Fiddler中的响应头更新您的问题。我发现,如果我转到IIS管理控制台,并在“存档”上添加响应头作为自定义HTTP响应头(名称字段为“缓存控制”,值字段为“无缓存”),则缓存似乎可以工作。为什么会这样?为什么它不能在Web.Config中工作?