有没有办法强制WebClient,而不是返回缓存数据?

Edw*_*uay 9 silverlight caching webclient

我正在从这样的Web服务器目录中检索图像:

        WebClient webClientImgDownloader = new WebClient();
        webClientImgDownloader.OpenReadCompleted += new OpenReadCompletedEventHandler(webClientImgDownloader_OpenReadCompleted);
        if(uriIndex < uris.Count())
            webClientImgDownloader.OpenReadAsync(new Uri(uris[uriIndex], UriKind.Absolute));
Run Code Online (Sandbox Code Playgroud)

但我注意到如果我删除图像,silverlight会继续检索图像,就像它在那里一样.

当我然后将图像URL输入到FireFox中时,我也会看到图像,但是然后我点击Reload它会给我一个图像不存在的相应错误.然后,当我再次运行我的silverlight应用程序时,它也恰当地给我一个错误,即图像不存在,就好像浏览器已经清除某处的缓存标记一样.

然后我如何通过代码中的WebClient进行"刷新",这样如果服务器上突然出现图像,Silverlight不会继续给我一个缓存的副本?

Bri*_*ott 7

这是一个棘手的问题,因为缓存通常是由网站的标题未指定无缓存引起的.我发现在过去,处理这些缓存问题的最简单方法就是提供随机查询字符串参数,以便Web服务器将每个请求解释为新请求.

如果您目前正在申请www.domain.com/image.jpg,请尝试www.domain.com/image.jpg?rand=XXXX,其中XXXX是服务器端代码中生成的随机值.