2012-08-09 54 views
3

我們已經有些COM+ Application含有多種服務組件每個(C#編寫),運行在Windows Server 2003中/ 2008R2操作系統的幾個DLL小號組成。將修補程序COM +應用程序安全

在某些情況下(我們儘量避免),我們有義務應用補丁來糾正錯誤。要做到這一點我們目前要做的是(當然假設我們需要在目標服務器上的所有東西):

  1. 禁用的COM +應用程序。
  2. 關機 COM +應用程序。
  3. 取消註冊涉及的DLL被替換。
  4. 替換的DLL。
  5. 寄存器再次涉及的DLL。
  6. 啓用 COM +應用程序。

沒有與提到的步驟沒有問題上面,我們建立了一個小型應用程序,用於管理COM+ Application Catalog編程,通過命令行,所以這樣我們就可以更新一些DLL文件,並把服務組件到大約居住。 2秒...對我們來說並不是太多,我們可以承受這個(離線)時間,但是我想通過編寫一個修補工具來完善和自動化這個過程。

我試圖搞清楚的是:

  • 我怎麼能知道我所有的COM+ Application的服務組件已經完成了他們的工作(所有請求/呼叫已完成),這樣我可以繼續安全到第2點?
  • 更詳細,有沒有我可以用得到的一定COM+ ApplicationServiced Components狀態的任何圖書館嗎?

注意:如果您在使用DCOMCNFG工作,我需要訪問的數據是一樣的,你看你擴大Console Root\Computers\My Computer\<MyComPlusApp>COM+ Application文件夾,然後您展開文件夾Components並轉到菜單View並選擇Status菜單項。當然視窗能夠知道每個COM+ Serviced Component在畫面的顯示它的狀態,所以這正是我需要訪問的數據。

回答

3

我怎麼能知道我所有的COM +應用 的服務組件已經完成了他們的工作(所有請求/電話一直 完成),這樣我可以繼續安全地2點?

您可以使用COM+ Instrumentation InterfacesCOM+ Tracking來接收有關組件的信息。

更詳細,有沒有我可以用得到的服務組件的 狀態的某些COM +應用程序的任何庫?

IGetAppTrackerData interface應該讓你得到你需要的信息。

一些注意事項:不要忘記,在關閉應用程序時需要小心,因爲組件無法在通話中,但在關機之前會有另一個呼叫進入服務。另外,根據我的經驗,使用COM + API可能會變得混亂,文檔有時缺乏(特別是在示例方面)。

它似乎可以節省2秒的工作。 :)

+0

非常感謝這個有價值的信息。我會試一試,讓你知道。 – 2012-08-11 08:37:49