• 强制客户端更新Silverlight XAP文件方法汇总


     

    Silverlight相关技术论坛经常会看到Silverlight部署后,客户端无法更新本地XAP文件,每次只能通过手动清理浏览器缓存,客户端才能正常访问到最新版本的XAP文件。本文将介绍几种强制客户端更新Silverlight XAP的方法。

     

    默认来说,当新版本的Silverlight应用发布时,浏览器缓存会查询本地是否已经存在同名XAP文件,并进行简单校验,如果存在并且验证相同,将忽略下载更新最新版本XAP文件。我们可以通过以下几种方式,强制浏览器更新下载XAP文件,

     

    方法1. IIS设置方式

    通过在设置IIS属性,强制XAP文件过期,使浏览器将重新下载XAP文件,步骤如下:

    - 打开IIS管理器;

    - 打开“默认网站”, 然后找到部署的Silverlight项目;

    - 在“ClientBin”目录下找到XAP文件;

    - 进入XAP属性页面,然后选择“HTTP Response Headers”;

     

    - 在Actions栏,选择“Set Common Headers...";

     

    - 选择”Expire Web Content - Immediately“, 然后保存设置。

     

    这样设置后,每当页面刷新时将强制Web页面内容过期,立即重新下载最新的XAP文件到本地。

     

    方法2,动态方式强制更新 

    所谓动态方式强制更新,其实每次部署时使用不同的XAP文件名,浏览器每次检测到不同的文件名,则将重新下载XAP文件。

    这种方式有很多种实现方法,例如,可以手动添加一个XAP文件参数,也可以动态生成一个随机参数,或者根据不同版本号绑定到XAP文件名后等。

    在下面实例代码中,根据部署的日期不同,将日期字符串作为XAP文件的参数,以此强制更新XAP文件,

    代码修改静态代码”<param name="source" value="ClientBin/SilverlightApp.xap"/>“为动态代码,当项目不是在Debug模式下,则生成新的XAP文件路径。

    复制代码
    <object id="Xaml1" data="data:application/x-silverlight-2," type="application/x-silverlight-2"
    width
    ="100%" height="100%">

    <%
    string orgSourceValue = @"ClientBin/SilverlightApp.xap";
    string param;
    if (System.Diagnostics.Debugger.IsAttached)
    param 
    = "<param name=\"source\" value=\"" + orgSourceValue + "\" />";
    else
    {
    string xappath = HttpContext.Current.Server.MapPath(@""+ @"\" + orgSourceValue;
    DateTime xapCreationDate 
    = System.IO.File.GetLastWriteTime(xappath);
    param 
    = "<param name=\"source\" value=\"" + orgSourceValue + "?ignore="
    + xapCreationDate.ToString() + "\" />";
    }
    Response.Write(param);
    %>
    <param name="onError" value="onSilverlightError" />
    复制代码


    方法3, 本地自动生成版本号强制更新XAP文件

    该方法由网友”菩提树下的杨过“提出,作者创建简单本地应用,使用本地应用生成不同的XAP文件名参数,其原理与方法2相同,实现方法不同。

    详细请看教程 ”Silverlight:xap包(或本地缓存)下载版本更新的解决思路“。

     

    如果您有更好的方法和建议,欢迎留言讨论。

    推荐Silverlight 5书籍



     

    Beginning Silverlight 5 in C#, Silverlight5入门级书籍,该书详细介绍Silverlight 5开发基础,由浅入深的介绍Silverlight 5新功能。

    适合Silverlight入门阅读。

    书籍下载

     


    欢迎大家加入“专注Silverlight”QQ技术群,欢迎大家加入一起学习讨论Silverlight&WPF&Widnows Phone开发技术。 
    22308706(一群) 超级群500人 
    37891947(二群) 超级群500人 
    100844510(三群) 高级群200人 
    32679922(四群) 超级群500人 
    23413513(五群) 高级群200人 
    32679955(六群) 超级群500人 
    88585140(八群) 超级群500人 
    128043302(九群 企业应用开发推荐群) 高级群200人 
    101364438(十群) 超级群500人 
    68435160(十一群 企业应用开发推荐群)超级群500人
  • 相关阅读:
    读后感
    mysql分库分表的基本方法
    pdo接口用法
    视频技术基础
    【原创】shell易错语法汇总
    php底层的运行机制
    mysql统计函数
    etc/shadow 登陆口令破解
    JAVA学习(方法重载)
    JAVA学习(方法的定义及调用)
  • 原文地址:https://www.cnblogs.com/jv9/p/2595015.html
Copyright © 2020-2023  润新知