DCOM 範例:從多個用戶端呼叫 Windows 服務中的 COM 物件
更新:2007 年 11 月
DCOM 範例示範如何從在不同的電腦上執行的多個用戶端中呼叫在 Windows 服務中實作的 COM 物件。它是由許多部分所組成:
DrawServ:實作 COM 物件的 Windows 服務。
ATLDraw:連接至 DrawServe COM 物件的用戶端。
DrawCtl:ATLDraw 的控制項版本。它擁有 Connect 方法 (接受電腦名稱字串參數)、Disconnect 方法和 Clear 方法。
MFCCont:DrawCtl 的 MFC 容器。輸入 (可能是遠端) 伺服器名稱,不包含引號或斜線。
ATLCont:DrawCtl 的 ATL 容器。輸入 (可能是遠端) 伺服器名稱,不包含引號或斜線。
若要讓這個範例正常運作,所有的電腦都必須執行 Windows 2000 (含) 以後版本。
將本範例與 ATL DCOM 範例比較。
安全性注意事項: |
---|
這個程式碼範例僅供概念說明之用,同時因為範例中的程式碼撰寫並沒有周全的顧及所有安全性問題,所以本範例不適用於實際執行的應用程式或網站中。如果使用者擅自將範例程式碼用於其他意圖而導致連帶事件或重大損害時,Microsoft 將不承擔任何責任。 |
若要取得範例和指示以便進行安裝:
按一下 Visual Studio [說明] 功能表上的 [範例]。
如需詳細資訊,請參閱尋找範例檔案。
最新版的完整範例清單可從 Visual Studio 2008 範例網頁 (英文) 取得。
您也可以將範例置於電腦硬碟中。根據預設,範例和讀我檔案都會複製到 \Program Files\Visual Studio 9.0\Samples\ 下的資料夾中。對於所有的 Visual Studio Express 版,所有範例都可在線上找到。
建置和執行範例
若要建置和執行這個範例
開啟 dcom.sln 方案。
建置 DrawServ 和 ATLDraw 範例。
將 Drawserv.exe 和 Atldraw.exe 複製至每一部您想要執行本範例的電腦上。配合命令列引數 /RegServer 或 -RegServer (不區分大小寫) 執行 DrawServ,將此伺服程式登錄在每一部電腦上。例如:
DrawServ /RegServer
(Register.dll 必須已經註冊,才能運作) 您必須將伺服程式複製至每一個用戶端上的原因是,伺服器的 CLSID 和伺服器型別程式庫必須登錄在用戶端上。
使用 [控制台] 上的 [服務] 圖示,啟動伺服器上的服務。
使用每一個用戶端上的 DCOMCNFG,選取 [DrawServ 類別] 的 [屬性]。從 [位置] 索引標籤上,選取 [在下列電腦上執行應用程式],然後輸入您執行此伺服器物件的電腦名稱。清除 [在這台電腦上執行應用程式] 核取方塊。
執行 ATLDraw 並選取伺服器。從每一個用戶端上的功能表進行連接。在用戶端視窗上進行繪製,按住滑鼠左鍵並拖曳出一條線。繪製的線會出現在每一個連接到相同伺服器的用戶端上。您也可以使用 [檢視] 功能表上的 [色彩] 命令來變更每個用戶端的顏色。
如果連接至遠端伺服器時發生任何問題 (例如,如果 Tstcon32.exe 沒有呼叫 CoInitializeSecurity),請執行用戶端上的 DCOMCNFG 並開啟 [預設屬性] 索引標籤。將 [預設驗證等級] 設定為 [無],並將 [預設模擬等級] 設定為 [未具名]。