1
如何以編程方式從.NET中的代碼重新啓動在遠程服務器上運行的COM +應用程序?如何從.NET重新啓動遠程服務器上的COM +應用程序?
如何以編程方式從.NET中的代碼重新啓動在遠程服務器上運行的COM +應用程序?如何從.NET重新啓動遠程服務器上的COM +應用程序?
您必須通過COM互操作使用ComAdmin API。
放在Windows \ System32下的\ com \ ComAdmin.dll的引用,則:
COMAdmin.COMAdminCatalog catalog = new COMAdmin.COMAdminCatalogClass();
catalog.Connect(servername);
catalog.ShutdownApplication(AppNameOrAppID);
你可以在MSDN3210的COMADMIN參考。
這是一個COM API,有點奇怪。例如。你不能實例化一個COMAdminCatalog,因爲它是一個接口,而不是一個類,所以你必須使用COMAdminCatalogClass來創建一個新的實例。使用Visual Studio的對象瀏覽器在COMAdmin命名空間中查找以找出這些類型的陷阱。
EDIT(一些注意事項):
其實,你可以寫
COMAdmin.COMAdminCatalog catalog = new COMAdmin.COMAdminCatalog();
和它的作品是令人吃驚,因爲COMAdminCatalog是一個接口。但必須VStudio的伎倆或C#編譯器,因爲所得到的組件包含以下IL:
newobj instance void [Interop.COMAdmin]COMAdmin.COMAdminCatalogClass::.ctor()
所以它在某種程度上發現該COMAdminCatalogClass必須被實例化,這也真奇怪,有點混亂太。如果有人知道如何發生,請評論。
優秀的答案。感謝您爲我提供所需的所有信息,以便隨時隨地處理。 – 2009-06-05 10:03:25