七部署NET安全策略 在前面一節中
我們創建了一個安全策略信任來自的代碼
在實際應用中還存在這樣一個問題
即我們應當方便用戶
不能要求每一個用戶按照同樣的步驟設置安全策略
解決辦法很簡單
設置好安全策略之後
我們還可以將安全策略分發給用戶
用戶只需一次點擊就可以完成全部設置
首先我們要創建一個部署包
它將通過Windows安裝文件(
MSI)文件把安全策略安裝到用戶的機器上
操作方法是
右擊
運行庫安全策略
選擇
創建部署包
如圖
圖創建一個部署包 部署包的安全策略級別分三種
企業
計算機
用戶
本例中
我們創建一個計算機策略的部署包
如圖
注意部署包的擴展名是
MSI
圖設置要部署的安全策略為計算機策略 創建好部署包之後
可以將它分發給用戶
只要雙擊運行
msi文件
Windows安裝程序就會自動安裝
msi文件中定義的安全策略
另外
網絡管理員還可以通過適當的配置
將配置安全策略的部署包自動發布給每一個用戶
八深入理解AssemblyLoadFrom 現在
我們來看看用Assembly
LoadFrom從遠程服務器下載一個程序集時背後發生的事情
以下面的代碼為例
指定URL
Dim URL As String
URL = _
從指定的URL裝入程序集
Dim a As [Assembly]
a = [Assembly]
LoadFrom(URL)
當
NET執行LoadFrom方法時
它訪//localhost/CodeDownloadDemo
尋找Web服務器上的ModuleA
dll程序集
在此過程中
NET會檢查以前是否下載過該程序集
如果從來沒有下載過
NET就下載該程序集
並把它保存到
NET程序集下載緩沖區
第二次運行同樣的代碼時
NET知道該程序集以前已經下載過一次
如果Web服務器上程序集的版本和本地程序集下載緩沖區中的版本一樣
NET就使用已經下載到磁盤上的程序集
假設我們現在第三次運行上述代碼
NET檢測到Web服務器上程序集的版本要比本地緩沖的版本新
這時
NET就會重新下載新版的程序集
把它保存到程序集下載緩沖區
並運行它
程序集下載緩沖區是位於\windows\assembly\download的一個特殊文件夾
必須指出的是
在比較程序集的本地版本和遠程版本哪一個更新時
NET的判斷依據是程序集的時間標記
而不是程序集的版本號
這一點很重要
特別地
如果有多個程序員協同開發和編譯程序集
應當注意計算機的時間設置問題
九當Web服務器不可用時 如果執行Assembly
LoadFrom時//localhost/CodeDownLoadDemo/的Web服務器不可用
例如
用戶的Internet連接出了故障
或者用戶正在旅途中使用筆記本
這時應該怎麼辦?在這種情況下
LoadFrom執行失敗
用戶不能從遠程服務器上的程序集裝入類
有一種解決辦法
雖然不那麼完美
但確實行得通
即用戶只要把浏覽器設置成脫機工作模式就可以了
如此設置之後
Assembly
LoadFrom就自動知道它應該使用程序集的下載緩沖區
十結束語 上面介紹的所有技術都有一個限制
即如果要讓自動部署技術能夠在用戶的機器上正常發揮
所有機器必須安裝
NET框架
雖然
NET框架是免費的
但不一定每一個用戶都會去安裝它
如果應用程序一定要求用戶下載和安裝
MB的
NET框架
用戶對應用程序的印象可能會受到影響
越來越多的新計算機會預先裝好
NET框架
所以該問題的影響應該越來越小
目前臨時的解決辦法是
用Install Shield或Wise Installer之類的工具創建一個典型配置的
NET框架安裝包
實現
NET框架自動安裝
NET自動部署是一種非常強大的技術
它能夠有效地減少部署胖客戶端程序過程中面臨的問題
充分運用
NET自動部署技術
我們可以保證用戶總是使用最新版本的代碼
卻不必要求用戶頻繁地去訪問某個網站下載更新軟件
NET自動部署技術一項很重要的特性是安全
它使得用戶既可以從指定的遠程地點下載程序
同時有效地保障用戶不會意外地運行來源不明的代碼
From:http://tw.wingwit.com/Article/program/Java/hx/201311/27182.html