Comment redémarrer par programme une application COM + s'exécutant sur un serveur distant à partir du code dans .NET?Comment redémarrer une application COM + sur un serveur distant à partir de .NET?
Répondre
Vous devez utiliser l'API ComAdmin via COM interop.
Mettez une référence sous Windows \ System32 \ Com \ ComAdmin.dll, puis:
COMAdmin.COMAdminCatalog catalog = new COMAdmin.COMAdminCatalogClass();
catalog.Connect(servername);
catalog.ShutdownApplication(AppNameOrAppID);
Vous pouvez trouver la référence COMAdmin dans MSDN here.
C'est une API COM, et un peu bizarre. Par exemple. vous ne pouvez pas instancier un fichier COMAdminCatalog, car il s'agit d'une interface et non d'une classe. Vous devez donc utiliser COMAdminCatalogClass pour créer une nouvelle instance. Utilisez l'Explorateur d'objets de Visual Studio pour parcourir l'espace de noms COMAdmin afin de découvrir ces pièges.
EDIT (une note):
En fait, vous pouvez écrire
COMAdmin.COMAdminCatalog catalog = new COMAdmin.COMAdminCatalog();
et il fonctionne ce qui est surprenant car COMAdminCatalog est une interface. Mais il doit être un truc de VStudio ou le compilateur C#, parce que l'ensemble obtenu contient l'IL suivante:
newobj instance void [Interop.COMAdmin]COMAdmin.COMAdminCatalogClass::.ctor()
Il en quelque sorte découvert que le COMAdminCatalogClass doit être instancié, ce qui est assez étrange et un peu déroutant aussi . Si quelqu'un sait comment cela se passe s'il vous plaît commenter.
- 1. Comment gérer les objets COM dans une application Web .Net
- 2. Consommation de serveur COM Python à partir de .NET
- 3. Appel d'un composant COM + Serveur distant à partir d'un client C#
- 4. Connexions Oracle à partir d'une application COM +
- 5. Profiling Bibliothèques COM utilisées à partir d'une application .NET
- 6. Comment déboguer la procédure stockée sur un serveur SQL distant à partir de Visual Studio 2005
- 7. Redémarrer Apache à partir de php sur windows
- 8. Comment déboguer une application asp.net sur le serveur en direct
- 9. Télécharger un fichier à partir d'un serveur distant ... (PHP)
- 10. Comment déboguer des JSP sur un serveur JBoss distant?
- 11. Comment exécuter les applications Red5 sur un serveur distant?
- 12. Téléchargement vers un serveur distant
- 13. Com Erreur sur le serveur
- 14. Redémarrage de Windows à partir d'une application .NET
- 15. Accès x86 COM à partir de x64 .NET
- 16. Comment redémarrer un service sur une machine distante sous Windows?
- 17. Comment forcer une application .NET à s'exécuter à froid
- 18. Comment intégrer une application Flash dans un site Web où le fichier d'application se trouve sur un serveur distant
- 19. Comment faire pour supprimer/redémarrer une connexion client à un serveur de socket flaky
- 20. Appel d'un objet COM à partir de .Net C#
- 21. Comment appeler un EJB distant à partir d'un client autonome
- 22. exécutant un fichier de registre sur le serveur distant
- 23. Charger un assembly .NET à partir d'un COM ProgID sans créer d'objet COM
- 24. Existe-t-il un moyen de "redémarrer" un assembly .net?
- 25. Identification des composants COM dans une application .NET
- 26. .net Objet COM + renvoyant IDataReader
- 27. Comment connecter un bean géré par message JBoss4 à un sujet sur un serveur distant?
- 28. Comment exécuter une application .NET 32 bits sur un serveur Windows 64 bits?
- 29. Comment vous connecter automatiquement à un pool IIS spécifique sur un serveur distant?
- 30. Un ou plusieurs arguments sont une erreur non valide lors de l'appel d'une application Com +
Excellente réponse. Merci de me donner toutes les informations dont j'ai besoin pour commencer. –
Il s'agit de l'attribut CoClass appliqué à l'interface de COM Interop. En 2009, j'ai découvert quelques utilisations non désirées de l'attribut et posté une question à ce sujet à http://stackoverflow.com/q/1303717/151249 Voir les liens sur la réponse de Marc Gravell pour plus de détails –