zoukankan      html  css  js  c++  java
  • 浏览器外部署Silverlight更新检查失败的原因及对策

    浏览器外部署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应用程序已经可以满足“已安装的应用程序和更新备选程序必须具有相同的证书/签名状态”的要求。

  • 相关阅读:
    iOS中多线程的实现方案
    初识多线程
    《文献管理与信息分析》第一讲学习总结
    《构建之法》第一章读书摘要
    Total Commander的初次体验
    学习《深入理解计算机系统》第一章摘要
    Vim编辑器的学习
    关于《文献管理与信息分析》的一些问题
    阅读《构建之法》后所产生的问题
    阅读《深入理解计算机系统(第三版)》产生的一些疑惑和困惑
  • 原文地址:https://www.cnblogs.com/chinadhf/p/2203983.html
Copyright © 2011-2022 走看看