在silverlight程序中我每隔3秒就去读取一次服务器上的xml文件.xml文件是实时更新的,但是我发现就第一次读取的时候好用,之后再读取的时候就像不是最新的xml文件了.我试过了,我手动的在浏览器地址打出xml地址刷新之后.silverlight才能正确的读取到新的xml内容
静态文件被缓存了。你应该通过设置 HTTP 标头,强制读取文件,而不是从缓存获取。
怎么设置啊。或者怎么写
@Launcher: 关键是,我的silverlight代码里面写嘛? 我是uri new 了一个绝对地址的xml
@Launcher: 还有我的xml 是在后台代码生成的
@蜡笔小辛: 关键是我不知道你用的什么类来实现的 http 请求。
@Launcher:这是silverlight 代码
WebClient client = new WebClient();
Uri uri = new Uri("http://192.168.1.1/FilesServer/config.xml", UriKind.Absolute);
client.DownloadStringAsync(uri);
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
@Launcher: 很悲剧的发现,我的silverlight4 里面的 webclient.headers 没有.add。所有。。。又卡主了
@蜡笔小辛: 但是你给了我一个好思路,谢谢啦,哥们
@蜡笔小辛: http://msdn.microsoft.com/zh-cn/library/system.net.webclient.headers(v=vs.95).aspx
http://msdn.microsoft.com/zh-cn/library/system.net.webheadercollection(v=vs.95).aspx
http://msdn.microsoft.com/zh-cn/library/cc189978(v=vs.95).aspx
有这么奇怪吗?
怎么我就照着页面提示一步一步的点击进去,就找到了同 .Net Framework 4.5 中的方法等同的方法呢?
@Launcher: 关键不知道咋往里面写。我死笨死笨的
楼上正解,有些文件是会被缓存,你可以 设置Http Header中的Cache 设置为No 默认不从缓存中读取