我只是想知道什么会导致我的xap每半天(大约)到期。我的意思是,在早上用户点击网站并下载xap的副本,如果该用户返回该网站并且该网站为他们下载另一个xap副本,则在下午。
我希望用户需要下载xap的新副本的唯一原因是他们清除了浏览器缓存或者在服务器上放了一个新副本。
关于什么是问题和修复的任何想法?
我在XAP下载上运行了fiddler,并从fiddler中的xap下载条目的缓存选项卡中获取了以下行。
默认情况下,HTTP / 200响应是可缓存的,除非出现Expires,Pragma或Cache-Control标头并禁止缓存。
HTTP / 1.1 ETAG标题存在:“2ad1d6bfdd43cb1:0” HTTP Last-Modified Header存在:Tue,2010年8月24日22:43:19 GMT
未提供显式HTTP过期信息。大多数浏览器都使用启发式过期策略: Last-Modified和Date之间的差值的10%是'02:53:34'所以这个响应会启发式地到期26/08/2010 4:39:26 PM。
这会是问题所在吗?我在哪里设置显式HTTP到期?
答案 0 :(得分:2)
要做的第一件事是: -
这将为真正的问题提供一套非常重要的线索。
刷新后会发生什么?您是否看到第二个XAP HTTP会话返回状态304响应?如果您获得200,请为第二次尝试添加原始请求标头和其原始响应标头。
如果你确实得到了304,请保留适当的时间,然后再试一次,是否仍然给出状态304?如果不是与上面相同。
这些数据将为我们提供大量信息以提供诊断。
答案 1 :(得分:0)
我认为HiTech Magic暗示的是你需要能够在IIS中调整此设置。根据Fiddler的说法,您的IIS似乎没有设置内容过期,我认为这是默认设置。
以下是如何在IIS 6中执行此操作:http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/0fc16fe7-be45-4033-a5aa-d7fda3c993ff.mspx?mfr=true 这是在IIS 7中如何做到这一点: h'ttp://technet.microsoft.com/en-us/library/cc770661(WS.10)的.aspx
答案 2 :(得分:0)
如果您使用的是ASP.Net(可以编辑帖子以告诉我们您的后端是什么吗?),请尝试使用Response.Cache.SetCacheability。有some gotchas,tho。