移植到 Windows 2000 和 COM+

移植到 Windows 2000 COM+

有了 Windows 2000 CD 之後,下一步就是要了解如何開始使用 COM+。您可能需要保持與一些開發人員計算機的互操作性,或者可能要升級服務器並且希望瞭解如何做。

本節的目標是幫助您將服務器和開發環境轉換爲 Windows 2000。與以前的技術相比,COM+ 有了很大的改進,因此移植是值得的。請完整閱讀本節,併爲您和您的小組制訂一個移植計劃。

考慮從零開始安裝 Windows 2000

在安裝 Windows 2000 時,可以選擇從零開始安裝系統或升級當前的配置。如果是後者,那麼 Windows 2000 安裝程序實際上是將老的配置移植到新的安裝中,包括將 MTS 軟件包轉換爲 COM+ 應用程序。最好在乾淨的系統中安裝 Windows 2000 並手動重新創建軟件包。這可以防止老的配置中的缺陷進一步擴散。

爲什麼

根據在升級方面的經驗,我們認爲節省的時間(因爲不重新配置服務器)並沒有價值,因爲無法保證不將任何錯誤的狀態(已損壞或不乾淨的註冊、阻塞目錄等等)帶入新的環境。

當然有例外情況。根據機器的角色,可以決定在升級過程中保留狀態(例如升級主域控制器)。但是,應用程序服務器通常不保留許多本機狀態,因此可以很好地進行“全新安裝”。

詳細信息

在計劃升級時,通常應該閱讀“Windows 2000 Server 資源大全”中的 Windows 2000 計劃和設計指南。部署指南列出了 Windows 2000 專業版、Windows 2000 Server 和 Windows 2000 Advanced Server 的支持升級路徑,並且說明了可能對升級,而不是執行乾淨安裝的決策產生影響的其他因素。(請記住,術語“升級”意味着用 Windows 2000 的升級功能替換操作系統。乾淨安裝代表先格式化磁盤,再重新安裝操作系統和所有應用程序)。然後討論使操作系統升級過程自動化的工具和步驟。

參考

Windows 2000 Server 資源大全(英文)
部署計劃指南(英文)
遠程 OS 安裝的逐步指南(英文)
將 MSMQ 1.0 企業版升級到 Windows 2000 域中的“消息隊列部署”(英文)(該文可從 ftp://ftp.microsoft.com/bussys/distapps/msmq/win2000/migration/migration3.doc 下載。)

創建新的軟件包並驗證所有屬性

如果從零開始安裝 Windows 2000,那麼 MTS 軟件包不會移植到 COM+ 應用程序中。有兩個選擇可以將 MTS 軟件包移植到 COM+ 應用程序中:

  1. 如果 MTS 軟件包有 PAK 文件,那麼可以在 Windows 2000 中安裝 MTS 軟件包的 PAK 文件,將 MTS 應用程序轉換爲 COM+ 應用程序。但是,將 MTS 應用程序轉換爲 COM+ 應用程序可能會產生更多錯誤,並且攜帶太多信息或者已經更改的信息(例如角色成員)。此外,這些應用程序所需的所有 DLL 文件相關性可能不會正確安裝在服務器上。

  2. 根據現有的 MTS 應用程序,創建、安裝和配置全新的 COM+ 應用程序。只有這樣才能保證您的應用程序被正確安裝並配置在新的環境中。

操作方式

在安裝 Windows 2000 之前,請確保應用程序的文檔是最新的,特別是與 MTS 下的組件配置有關的文檔。確保應用程序包括:

  • 安裝在什麼軟件包下的組件。

  • 如果軟件包是 Server 或 Library。

  • 驗證級別、角色和安全性設置。

  • 應用程序標識。

  • 分佈式事務協調器 (DTC) 日誌大小,超時。

  • 事務的屬性。

非特定於 MTS 的記錄配置信息,例如:

  • DCOM 驗證和安全性設置。

  • MTS 軟件包和服務的標識的特權。

  • SQL Server 連接配置設置。

  • 可能已經安裝的任何服務(例如 Microsoft 消息隊列服務器 (MSMQ) 聽衆)。

  • 註冊表項。

  • 網絡設置。

  • 手動添加的主機名解析項(在 LMHOSTS 或 HOSTS 中)。

在安裝了 Windows 2000 後,請完成下列步驟:

  1. 爲組件運行安裝程序,以確保這些組件需要的所有相關性都就緒。

  2. 如果需要,爲 Application 標識創建用戶(請記住,在 COM+ 中 MTS 軟件包稱爲 Applications),並授予這些用戶必要的特權。

  3. 創建需要的 COM+ Applications。現在必須確保應用程序、軟件包和接口屬性與 MTS 軟件包中的設置相匹配。

  4. 向 COM+ 應用程序添加角色。

  5. 將組件添加到 COM+ Application 中,根據需要配置它們。

  6. 爲對象和接口(以及方法)設置正確的角色。

參考

關於 Windows 2000 部署的詳細信息,請參閱“考慮從零開始安裝 Windows 2000”一節中的鏈接。詳細信息,請參閱該“知識庫”文章。

基本知識:將 MTS 軟件包轉換爲 COM+ Applications (Q252400)(英文)

保持構造環境與部署目標的同步

當編譯要在 Windows 2000 下運行的對象時,請將它們編譯和包裝爲可以在 Windows 2000 計算機上部署。

爲什麼

應用程序所依賴的許多系統 DLL、類型庫和大量其他資源,可能已經從 Windows NT 改變到 Windows 2000。作爲一種規則,如果在 Windows 2000 中安裝在 NT 4.0 中編譯的組件,系統應該不會有危險,但是爲什麼還有風險呢?因爲若是保持構造環境與測試和部署環境相一致,可能您自己保留了許多難以跟蹤或解決的問題。

操作方式

如果要在 Windows 2000 中部署組件,請用 Windows 2000 計算機作爲構造機器。

清除接口轉發

您可能想利用新的開始(它不是新的仟僖年,而是新的操作系統)的機會清除對象接口。如果構造過程不是很嚴格,那麼最終可能出現稱爲接口轉發的問題。如果在將方法或參數添加到組件後告訴 VB 希望保持二進制兼容性,則會發生接口轉發。應該嘗試避免接口轉發。

請記住,如果客戶機使用早期綁定,則需要用對新的 DLL 或類庫的引用來重新構造它們。根據分佈策略的不同,部署成本可能很難用“乾淨接口”來解釋。

操作方式

取消接口轉發的最簡單方式是:

  1. 將當前 DLL 的副本存儲在某個安全的地方(或者重命名它)。

  2. 在“項目”..“屬性”..“組件”中設置“無兼容性”並重新編譯 DLL。

  3. 設置爲“二進制兼容性”並指向已保存的 DLL;再次重新編譯 DLL。

爲什麼

MTS 幾乎不能與有接口轉發的組件一起正常工作,並且該功能幾乎沒有測試過。它還對註冊增加了不必要的複雜性,而且某些卸載程序在處理該功能時感到迷惑。

詳細信息

如果在項目上設置了“二進制兼容性”,並在以後決定給對象添加方法,那麼可以選擇打破或保持兼容性。如果選擇保持兼容性(不要嘗試這麼做),那麼 VB 會使用特殊的 COM 註冊功能,稱爲接口轉發。這意味着將註冊舊的接口 ID,但是信息將轉發給新的接口。

對接口添加方法,或對函數添加可選的參數,絕對需要接口的新的 IID。它完全濃縮爲某件簡單的東西 — 您的 IID 標識接口(一件東西)以及它表現的內容,而不是客戶機如何使用它的安排。因此,如果對接口可以做的全部事情的組合改變了的話,IID 也必須改變。可以將它比作在鍵盤上添加一個鍵。可以假定以前的用戶不按此鍵。甚至可以決定不重新打印手冊。但是,鍵盤的 SKU 編號必須改變。

參考

保持二進制兼容性(英文)
PRB:在有 MTS 的 Visual Basic 中已經將錯誤轉發給該接口 (Q222634)(英文)
構造、版本管理和維護 Visual Basic 組件(英文)

使用 COM+ 的 Windows 2000 類型庫和 ProgID

您的組件可能有對 Transaction Server 對象、Shared Property Manager 等等的引用。在 Windows 2000 中,類型庫名稱已經改變,因此請仔細檢查您的引用是否正確,以及是否可以創建需要的對象。

將 DLL 或 EXE 帶入 Windows 2000 時,可以看到,它仍然能夠創建 AdministrationShared Property 對象 — 無論使用 New 關鍵字或 CreateObjectProgIDs 關鍵字。

詳細信息

下表概述了某些最重要的改動。如果項目引用 MTS 庫,那麼在 Windows 2000 計算機上打開時,這些引用將得到更新,如下表所述。

MTS COM+
Microsoft 事務服務器類型庫

(MTXAS.DLL)

COM+ 服務類型庫

(COMSVCS.DLL)

共享屬性管理器類型庫

(MTXSPM.DLL)

COM+ 服務類型庫

(COMSVCS.DLL)

MTS 2.0 管理類型庫

(MTXADMIN.DLL)

MTS 2.0 管理類型庫

(MTSADMIN.TLB)


MTS Admin DLL 引用已經轉換爲 MTS TLB 引用以獲得向後兼容性。COM+ Admin 引用是單獨的項目。但是,如果計劃使用 COM+ Admin 對象,則需要仔細閱讀文檔,因爲它們支持的集合、屬性和方法已經改變。

操作方式

如上所述,將工作的 DLL 帶入 Windows 2000 中不會破壞它,至少不會在創建 MTS 對象時破壞它。當第一次在 Windows 2000 中編譯時,由於新類型庫名稱而可能會發現一些新的問題。最簡單的解決方案是從變量聲明中刪除類型庫的限定符。使用下面的檢查列表幫助您進行更改。

如果您有變量聲明爲:

MTxSpm.SharedProperty[...] 

將它們改變爲:

COMSVCSLib.SharedProperty[...]

或者刪除 TypeLib 限定符:

SharedProperty[...]

如果您有變量聲明爲:

MTxAS.ObjectContext (or MtxAS.[...])

將其變爲:

ObjectContext

ProgIDs MTSAdmin.Catalog、MTSAdmin.Catalog.1、MTxSpm.SharedProperty[...].1 在 Windows 2000 下將正常工作。

熟悉新的配置選項和術語

熟悉 COM+ 爲對象帶來的所有新配置選項。下面所列的文章概述了新的 COM+ 功能。但是,通過瀏覽“COM+ 組件服務管理器”樹和計算機、應用程序、對象、接口、方法等等的屬性表,可以對新選項有更好的瞭解。

在開始使用之前瞭解這些設置會使效率提高很多,而閱讀下面的“知識庫”文章是良好的開端。也可以查看 MSDN 並花幾分鐘時間閱讀主要的文檔。有趣的事情會在思想火花出現時開始。下面的“知識庫”文章提供了有用的鏈接,並有助於決定和您關係最密切的內容。

參考

信息:COM+ 1.0 的新內容 (Q253669)(英文)

建立有效的管理控制檯

Windows 2000 在管理任務上的效率是驚人的,但是來自 Windows NT 4.0 的工具已經轉移到更好的位置。請嘗試找到您使用的實用程序,並將它們組合到自己的 MMC 控制檯以方便使用。

詳細信息

下面列出了 MTS/COM+ 開發人員和管理員使用的一些常見工具,以及它們的新位置。

  • Transaction Server Explorer:已經移動到“組件服務”(或者“組件服務管理器”)管理單元中。通過單擊開始按鈕,單擊程序管理工具組件服務可以直接訪問它。

  • MSMQ Explorer:已經轉移到 [服務和應用程序]...[消息排隊]下的“計算機管理”管理單元中。

  • ODBC:已經轉移到“管理工具”...“數據源”[ODBC] 中。

  • Local Security & Auditing:它們可以在“管理工具/本地安全策略”和“本地用戶和組”管理單元中找到。

  • 事件查看器:現在它是管理單元。

  • 服務:它現在也是管理單元。

操作方式

通過下列步驟可以保存自己的控制檯:

  • 單擊開始按鈕,然後單擊運行,再鍵入 MMC

  • 控制檯菜單中,進入添加/刪除管理單元

  • 在“添加/刪除管理單元”對話框(下面的圖 1)中,單擊添加按鈕並選擇需要的管理單元。

可以使用下面的項目:

  • 組件服務

  • 事件查看器

  • SQL Server 企業管理器

  • Internet 信息服務

  • 計算機管理

  • 本地用戶和組

  • 性能日誌和警報

  • 服務

  • 系統信息

  • 還能將“到 Web 地址的鏈接”添加到“Microsoft 知識庫”或 MSDN 搜索、intranet 站點中,或將鏈接添加到使用最多的文件共享中。如果覺得控制檯的管理單元太多的話,請嘗試將它們組織到文件夾中。

  • 進入“控制檯”並選擇“選項”。選擇“用戶模式”可以防止進一步改動。爲它選擇正確的標題和圖標,選擇是否保存更改。

  • 將控制檯保存到能夠方便得到的 MSC 文件中。

  • 將 MSC 文件拖到“開始”按鈕上以便爲它創建快捷方式。甚至可以對它指定快捷方式鍵序列。

圖 1. 方便的 MMC 管理單元

也可以爲遠程管理啓用“終端服務”。這樣就可以使用其他計算機作爲您的服務器的終端,避免了在遠程使用標準管理工具時遇到的侷限性。

關於如何實現的詳細信息,請參閱下面的鏈接。

參考

Windows 2000 管理服務(英文)
使用終端服務遠程管理 Windows 2000 Server 系列(英文)

查看 Windows 2000 Server 應用程序準則

Microsoft 已經發布了一系列與應用程序必須保持的行爲和資源交互有關的準則,它們是爲 Windows 2000 狀態設計的。即使您對獲得正式證書不感興趣,那也可以查看其概述的實踐,瞭解 Microsoft 對“正常工作”的 Windows 2000 應用程序的正式定義。

參考

Windows 2000 桌面應用程序的應用程序規範(英文)
Windows 2000 Server 的應用程序規範(英文)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章