Silverlight OOB程式簽名問題

2022-01-18 16:51:38 字數 805 閱讀 5955

瀏覽器外部署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包進行簽名:

由於證書是自製的且未新增到受信任區域,安裝silverlight應用程式到本地時仍會出現「無法驗證發布者。」的警告,但通過以上步驟簽名後的silverlight應用程式已經可以滿足「已安裝的應用程式和更新備選程式必須具有相同的證書/簽名狀態」的要求。

Windows 纖程 協程

寫這篇文章的原因是,很多框架 庫都有協程 纖程的支援,比如python的gevent,php 的swoole等等,但是具體是什麼樣的呢?為什麼協程方式效能會更好?很多初學者聽個詞,聽風就是雨,把協程和io能混成乙個概念。使用纖程的第乙個步驟是將已有的執行緒轉換為乙個纖程。convertthreadt...

協程巢狀協程

import asyncio import functools 第三層協程 async def test1 print 我是test1 await asyncio.sleep 1 print test1已經睡了1秒 await asyncio.sleep 3 print test1又睡了3秒 ret...

9 協程 協程理論

本節的主題是基於單執行緒來實現併發,即只用乙個主線程 很明顯可利用的cpu只有乙個 情況下實現併發,為此我們需要先回顧下併發的本質 切換 儲存狀態 ps 在介紹程序理論時,提及程序的三種執行狀態,而執行緒才是執行單位,所以也可以將上圖理解為執行緒的三種狀態cpu正在執行乙個任務,會在兩種情況下切走去...