簡體   English   中英

如何從.NET重新啟動遠程服務器上的COM +應用程序?

[英]How do I restart a COM+ application on a remote server from .NET?

如何以編程方式從.NET中的代碼重新啟動在遠程服務器上運行的COM +應用程序?

您必須通過COM互操作使用ComAdmin API。

將引用放在Windows \\ System32 \\ Com \\ ComAdmin.dll,然后:

COMAdmin.COMAdminCatalog catalog = new COMAdmin.COMAdminCatalogClass();
catalog.Connect(servername);
catalog.ShutdownApplication(AppNameOrAppID);

您可以在MSDN中的COMADMIN參考這里

這是一個COM API,有點奇怪。 例如。 您無法實例化COMAdminCatalog,因為它是接口,而不是類,因此您必須使用COMAdminCatalogClass來創建新實例。 使用Visual Studio的對象瀏覽器在COMAdmin命名空間中四處查看,以找出這些陷阱。

編輯(一些注意事項):

其實你可以寫

COMAdmin.COMAdminCatalog catalog = new COMAdmin.COMAdminCatalog();

它的工作原理令人驚訝,因為COMAdminCatalog是一個接口。 但這必須是VStudio或C#編譯器的技巧,因為生成的程序集包含以下IL:

newobj instance void [Interop.COMAdmin]COMAdmin.COMAdminCatalogClass::.ctor()

因此,它以某種方式發現必須實例化COMAdminCatalogClass,這很奇怪,也有些令人困惑。 如果有人知道如何發生,請發表評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM