當您建立已啟用共用的 COM + 物件時,兩個 DLL 主機開始

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:3148846
結論
當 COM + 應用程式設定為使用應用程式集區中時,兩個 DLL 主機啟動而不是一台主機上啟動。
其他相關資訊
COM + 應用程式啟用應用程式集區時,物件建立要求都會通過透過 RPC 服務中。將物件建立要求傳送至 DLL 主機處理序啟動的應用程式集區使用 「 遞迴 」 演算法。

當您建立 COM 物件時,您主要是使用CoCreateInstance(ex)函式。建立 COM 物件的第二個方法是從 DLL 時,取得類別工廠,然後使用 [類別工廠物件。當您一次建立一個以上的 COM 物件時,最常使用這個方法。

CoCreateInstance計算做為單一物件建立要求。如果您使用的類別工廠方法時,這也算是兩個物件建立要求。這是因為第一個建立為類別工廠物件。如果您尚未啟用應用程式共用,這項設定就會啟動兩個 Dllhost.exe 處理序。

因為.NET 會使用類別的 factory 方法,來建立 COM 物件,當您從目標 COM + 應用程式建立物件時啟動兩個 DLL 主機在.NET 用戶端上。
狀況說明
此行為是系統設計的一部份。

警告:本文為自動翻譯

內容

文章識別碼:3148846 - 最後檢閱時間:04/08/2016 03:29:00 - 修訂: 1.0

Microsoft COM+ 1.5

  • kbmt KB3148846 KbMtzh
意見反應