Je développe une application de fenêtre et je crée également un service. Je lance le service en utilisant le codage dans l’application Windows, mais j’obtiens une erreur telle que je ne peux pas ouvrir le service Windows sur l’ordinateur '.'
J'ai utilisé le code ci-dessous.
ServiceController controller = new ServiceController("SeoMozScheduleService");
if (controller.Status == ServiceControllerStatus.Stopped)
{
controller.Start();
}
Si je clique avec le bouton droit sur Application et clique sur Exécuter en tant qu’administrateur pour que cela fonctionne très bien pour moi ...
Allez à C: // Program Files/ApplicationFolder/.exe Cliquez avec le bouton droit de la souris sur .exe et allez à Propriétés, puis sur l'onglet Compability et cochez la case Exécuter ce programme en tant qu'administrateur.
Pour rendre cela automatique à chaque fois que vous ouvrez l'application, vous devez ajouter un fichier manifeste à votre solution, puis mettez à jour le noeud requestedExecutionLevel
à l'intérieur du fichier pour ressembler à ceci:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
Cependant, si vous modifiez ce paramètre, le système vous invitera chaque fois à exécuter l'application en tant qu'administrateur si le contrôle de compte d'utilisateur est activé.
si vous utilisez Visual Studio, fermez-le et ouvrez Visual Studio avec Run en tant qu'administrateur.
Aucune de ces solutions ne m’a aidé, car cela me serait utile si j’avais bien vérifié que j’avais d’abord un accès administrateur sur l’ordinateur cible! J'étais en train de retirer et de redonner un accès administrateur à mon compte principal à l'aide de mon compte administrateur de domaine. Lorsque j'ai exécuté du code ServiceController
qui vérifiait si un service était en cours d'exécution sur un ordinateur distant, sous le compte administrateur du domaine, tout allait bien. Lorsque je l'ai utilisé en tant que compte principal, cela ne fonctionnait pas, même lorsque Visual Studio était exécuté en tant qu'administrateur. Il s'avère que j'avais effectué des tests sans mon compte principal dans le groupe d'administration local ... ah!
Je me suis heurté à cela avec une tâche planifiée sur un serveur - en cochant la case "Exécuter avec les privilèges les plus élevés" (Pour que cela fonctionne, le compte de service doit bien sûr disposer des droits d'administrateur.)
Le changement de version du cadre dans le fichier app.conf par la version installée sur le système a résolu le problème pour moi.