我的IIS服务器中存储了一个XML文件。在执行的几个阶段,我的应用程序检索此文件。基本上它会回到服务器并再次获取文件。问题是应用程序错误输出,因为文件没有被返回,因为它已被浏览器缓存。它返回304错误。我知道当我在URL上传递更改的ID时,它不会被缓存;问题是这个文件有一个固定的位置,如果我在URL中放入其他东西,它将无法找到它。那么,有没有办法优雅地解决这个问题?无法更改客户端上的缓存设置。我使用WebClient对象异步请求文件。 谢谢!
答案 0 :(得分:1)
304不是错误,它是根据HTTP响应代码规范的“未修改”指示。您可以尝试在查询字符串中添加一个或两个随机数,以便尝试获得200返回。
答案 1 :(得分:0)
尝试在请求中设置If-Modified-Since标头以执行条件GET请求。然后,您可以检查未修改(HTTP 304)状态代码,如果已修改,则执行某些操作;否则让浏览器使用缓存版本。
以下是有关此技术的博客文章: Setting If-Modified-Since Header in code
答案 2 :(得分:-1)
第一次下载XML文件时,IIS的设置告诉客户端可以缓存文件。您可以modify the cache settings查看包含XML文件的目录,以便它告诉客户端不要缓存任何内容。
示例:
<configuration>
<location path="myXmlFiles">
<system.webServer>
<staticContent>
<clientCache cacheControlMode="DisableCache" />
</staticContent>
</system.webServer>
</location>
</configuration>