大佬教程收集整理的这篇文章主要介绍了自动更新 – Silverlight 5 – 使用反缓存技巧时OOB安装/更新中断,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用Silverlight 5运行时*,OOB安装/自动更新功能现在似乎已被破坏.我有两个问题:
>在浏览器中启动时,当前安装状态始终为“未安装”(在代码中:Application.Current.InstallState == System.Windows.InstallState.notinstalled始终为truE)
>在OOB模式下启动时,总是说新版本可用(代码中:checkAndDownloadupdateAsync()始终返回e.Error == null和e.updateAvailable == truE).
*精确度:目前我的应用程序是使用Silverlight 5工具构建的,但目标是Silverlight 4,并且在Silverlight 4 Developer Runtime上运行良好.问题发生在(至少)我的开发机器上使用Silverlight 5 Developer Runtime.
更新:我已经与fiddler核实了我的开发箱上发生了什么.调用更新过程时,我看到:
GET /ClientBin/Client.xap?timestamp=23%2f01%2f2012+17%3a42%3a14 http/1.1 If-Modified-Since: Tue,24 Jan 2012 09:10:07 GMT
这对我来说很好,除了服务器(服务器:ASP.NET开发服务器/ 10.0.0.0,X-AspNet-版本:4.0.30319)返回一个新版本,具有以下缓存头:
http/1.1 200 OK Cache-Control: private Date: Tue,24 Jan 2012 09:11:28 GMT
每次运行应用程序时,检查请求都有正确的日期(服务器先前返回的日期),每次服务器都说它有一个新版本,并带有当前日期.我将尝试调整服务器配置.
update2:我的Web.config文件中有一个缓存控制指令,但删除它只解决了一半的问题.现在,浏览器应用程序检测到OOB安装正常,但更新周期继续,具有相同的fiddler跟踪.
update3:问题肯定与调试Web服务器有关.使用相同的Web.config部署到适当的IIS的相同应用程序没有此问题.但这仍然很烦人,因为它大大减慢了我的OOB调试过程.
update4:事实上,即使在我的主要IIS部署上,问题仍然存在,并且也发生在其他服务器上(并使用PHP生成时间戳而不是ASP.NET).所以任何帮助都表示赞赏.
private void checkAndDownloadupdateCompleted(object sender,System.Windows.checkAndDownloadupdateCompletedEventArgs E) { if (e.Error != null) { if (e.Error is PlatformNotSupportedException) { updateType = updateTypes.Platformupdate; //(...) return; } else if (e.Error is SecurityException) { updateType = updateTypes.Elevationrequired; //(...) return; } else { // Error handling code //(...) } } else if (e.updateAvailablE) { updateType = updateTypes.Available; //(...) return; } updateType = updateTypes.Noupdate; //(...) }
我也在使用你提到的反缓存技巧,我遇到了同样的行为,Application.Current.InstallState总是报告notinstalled以及checkAndDownloadupdateAsync()总是报告e.updateAvailable = true.
因此,我将Web项目配置更改为使用IIS Express而不是内置的Visual studio Development服务器,并将Silverlight应用程序重新安装到桌面.最后,一切都按预期开始工作.按顺序说明Application.Current.InstallState = Installed和checkAndDownloadupdateAsync()报告e.updatedAvailable = false.
更新:
抱歉,没有看到您在实时IIS部署中遇到此问题.
更新2:
我的反缓存HTML请求:
<div id="silverLightcontrolHost" align="center" style="height:100%"> <object data="data:application/x-silverlight-2," type="application/x-silverlight2" width="100%" height="100%"> <% String source = @"~/ClientBin/EskomVDT.Sl.xap"; String param; if(System.Diagnostics.Debugger.IsAttached) { param = "<param name=\"source\" value=\"" + VirtualPathUtility.ToAbsolute(sourcE) + "\" />"; } else { String xapPath = httpContext.Current.Server.MapPath(sourcE); datetiR_378_11845@e xapCreationDate = System.IO.File.GetLastWriteTime(xapPath); param = "<param name=\"source\" value=\"" + VirtualPathUtility.ToAbsolute(sourcE) + "?ignore=" + xapCreationDate.ToString("yyyy-MM-dd-hh-mm-ss") + "\" />"; } Response.Write(param); %> <param name="onError" value="onSilverlightError" /> <param name="BACkground" value="white" /> <param name="minRuntimeVersion" value="5.0.61118.0" /> <param name="autoUpgrade" value="true" /> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=5.0.61118.0" style="text-decoration:none"> <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/> </a> </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe> </div>
以上是大佬教程为你收集整理的自动更新 – Silverlight 5 – 使用反缓存技巧时OOB安装/更新中断全部内容,希望文章能够帮你解决自动更新 – Silverlight 5 – 使用反缓存技巧时OOB安装/更新中断所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。