浏览器外部署Silverlight更新检查失败的原因及对策
瀏覽器外部署Silverlight時(shí),為了讓部署到本地的Silverlight應(yīng)用程序保持最新,通常需要在應(yīng)用程序中添加更新檢查的功能。具體實(shí)現(xiàn)可參見(jiàn)這兒。
除了文中提到的“應(yīng)用程序中使用了用戶尚未安裝的Silverlight新版本”會(huì)造成檢查更新失敗外,可能還會(huì)遇到“無(wú)法更新應(yīng)用程序,已安裝的應(yīng)用程序和更新備選程序的證書/簽名狀態(tài)不同。”的錯(cuò)誤。Silverlight的安全機(jī)制要求已安裝的應(yīng)用程序和更新備選程序必須具有相同的證書/簽名狀態(tài),如果未對(duì)XAP包進(jìn)行簽名,則不能滿足該要求。因此,如果準(zhǔn)備在正式環(huán)境中(本機(jī)開(kāi)發(fā)環(huán)境中一般是遇不到的)實(shí)現(xiàn)Silverlight應(yīng)用程序?yàn)g覽器外部署時(shí)的更新檢查,必須對(duì)XAP包進(jìn)行簽名。
如果能申請(qǐng)正式的數(shù)字證書當(dāng)然是最好的解決方案,如果只是在企業(yè)內(nèi)部或小范圍內(nèi)應(yīng)用,也可以采用自制證書對(duì)XAP包進(jìn)行簽名,步驟如下:
1、使用makecert建立自制的數(shù)字簽名:
makecert -r -pe -ss Privatecertstore -n "CN=MyName" MyCert.cer如果出現(xiàn)“ ‘makecert’不是內(nèi)部或外部命令... ”的提示,是因?yàn)閙akecert所在的路徑未加入到系統(tǒng)環(huán)境變量Path中,利用Visual Studio Command Prompt可以避免這個(gè)問(wèn)題。
2、利用上一步生成的證書對(duì)XAP包進(jìn)行簽名:
signtool sign /v /s Privatecertstore /n MyName MyApp.xap由于證書是自制的且未添加到受信任區(qū)域,安裝Silverlight應(yīng)用程序到本地時(shí)仍會(huì)出現(xiàn)“無(wú)法驗(yàn)證發(fā)布者。”的警告,但通過(guò)以上步驟簽名后的Silverlight應(yīng)用程序已經(jīng)可以滿足“已安裝的應(yīng)用程序和更新備選程序必須具有相同的證書/簽名狀態(tài)”的要求。
轉(zhuǎn)載于:https://www.cnblogs.com/chinadhf/archive/2011/10/09/2203983.html
總結(jié)
以上是生活随笔為你收集整理的浏览器外部署Silverlight更新检查失败的原因及对策的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 河北承德木兰围场(承德木兰围场自驾游)
- 下一篇: Oracle角色