浏览器外部署Silverlight更新检查失败的原因及对策
2011-10-09 18:06
411 查看
浏览器外部署Silverlight时,为了让部署到本地的Silverlight应用程序保持最新,通常需要在应用程序中添加更新检查的功能。具体实现可参见这儿。
除了文中提到的“应用程序中使用了用户尚未安装的Silverlight新版本”会造成检查更新失败外,可能还会遇到“无法更新应用程序,已安装的应用程序和更新备选程序的证书/签名状态不同。”的错误。Silverlight的安全机制要求已安装的应用程序和更新备选程序必须具有相同的证书/签名状态,如果未对XAP包进行签名,则不能满足该要求。因此,如果准备在正式环境中(本机开发环境中一般是遇不到的)实现Silverlight应用程序浏览器外部署时的更新检查,必须对XAP包进行签名。
如果能申请正式的数字证书当然是最好的解决方案,如果只是在企业内部或小范围内应用,也可以采用自制证书对XAP包进行签名,步骤如下:
1、使用makecert建立自制的数字签名:
如果出现“ ‘makecert’不是内部或外部命令... ”的提示,是因为makecert所在的路径未加入到系统环境变量Path中,利用Visual Studio Command Prompt可以避免这个问题。
2、利用上一步生成的证书对XAP包进行签名:
由于证书是自制的且未添加到受信任区域,安装Silverlight应用程序到本地时仍会出现“无法验证发布者。”的警告,但通过以上步骤签名后的Silverlight应用程序已经可以满足“已安装的应用程序和更新备选程序必须具有相同的证书/签名状态”的要求。
除了文中提到的“应用程序中使用了用户尚未安装的Silverlight新版本”会造成检查更新失败外,可能还会遇到“无法更新应用程序,已安装的应用程序和更新备选程序的证书/签名状态不同。”的错误。Silverlight的安全机制要求已安装的应用程序和更新备选程序必须具有相同的证书/签名状态,如果未对XAP包进行签名,则不能满足该要求。因此,如果准备在正式环境中(本机开发环境中一般是遇不到的)实现Silverlight应用程序浏览器外部署时的更新检查,必须对XAP包进行签名。
如果能申请正式的数字证书当然是最好的解决方案,如果只是在企业内部或小范围内应用,也可以采用自制证书对XAP包进行签名,步骤如下:
1、使用makecert建立自制的数字签名:
makecert -r -pe -ss Privatecertstore -n "CN=MyName" MyCert.cer
如果出现“ ‘makecert’不是内部或外部命令... ”的提示,是因为makecert所在的路径未加入到系统环境变量Path中,利用Visual Studio Command Prompt可以避免这个问题。
2、利用上一步生成的证书对XAP包进行签名:
signtool sign /v /s Privatecertstore /n MyName MyApp.xap
由于证书是自制的且未添加到受信任区域,安装Silverlight应用程序到本地时仍会出现“无法验证发布者。”的警告,但通过以上步骤签名后的Silverlight应用程序已经可以满足“已安装的应用程序和更新备选程序必须具有相同的证书/签名状态”的要求。
相关文章推荐
- 用户 'IIS APPPOOL\admin' 登录失败。 原因: 基于令牌的服务器访问验证失败,出现基础结构错误。请检查以前的错误
- 检查失败,<master>分支有过其他更新,请先在本地合并<master>分支的代码
- 2016/07/31 安装cocoapods 失败 原因:ruby 环境版本必须大雨2.2 --> 更新到2.3后重新安装
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。 (异常来自 HRESULT:0x8000401A)。 在 BatchImportEntryTable.GetExcelData(String FileName)
- tomcat中部署项目后,访问失败,报错404的原因以及解决方案
- 根据工作区更新内表失败 原因!?
- iOS install failed 真机调试安装失败原因总结(持续更新)
- Exchange部署吐血故障连载二:OWA权限传递失败,根源在于未更新ServisePack1
- js检查ie低版本浏览器,并跳转更新页面
- 解密百度2015年5月大量网站被降权原因之更新“标签算法”对策
- 检查浏览器是否安装silverlight插件
- qt数据库sqlite表级联删除更新失败原因
- VDI部署失败的十大原因
- 转-firefox浏览器下margin-top不起作用的原因和对策
- Silverlight 浏览器外运行及更新判断
- 解决:MyEclipse中SVN更新引起代码冲突导致部署失败
- Tomcat+nginx项目在浏览器报安全隐患以及图片加载失败原因
- VDI部署失败的十大原因
- Silverlight 浏览器外运行及更新判断