Est-ce que quelqu'un sait-il comment obtenir les arguments que je déclare dans ServiceInstall d'être transmis au service lorsqu'il démarre? Ils semblent toujours être nuls dans mon ondstart (string [] args).
<ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes" Name="MyService" DisplayName="MyService" Description="MyService Desc" Start="auto" Account="LocalSystem" ErrorControl="ignore" Interactive="yes" Arguments="MY ARGS HERE" > </ServiceInstall> <ServiceControl Id="ServiceControl" Start="install" Stop="both" Remove="uninstall" Name="MyService" Wait="yes" />
3 Réponses :
Quelqu'un est-il de progresser sur cela? Je ne vois pas ces arguments frapper mon service au démarrage:
partial class PrintMonitorService : ServiceBase { private readonly PrintMonitorServiceManager _serviceManager; public PrintMonitorService() { InitializeComponent(); _serviceManager = new PrintMonitorServiceManager(); } protected override void OnStart(string[] args) { _serviceManager.StartHosting(args); } protected override void OnStop() { _serviceManager.StopHosting(); }
pareil ici. Vous avez trouvé des solutions mate? :(
Il existe une distinction entre les arguments qui sont passés à l'EXE lors du démarrage (dans Main ()) et les arguments passés sur le démarrage du service. Cela pourrait être ce qui vous confondre. Principale () Obtient Argc et Argv, et ServiceBase.cpp au démarrage Obtenez ses propres paramètres via: Vide virtuel Onstart (Dword Dwargc, LPWSTR * PSZARGV);
genre de vieux, mais voici ce que vous pouvez faire
<ServiceInstall Id="SomeService" Type="ownProcess" Vital="yes" Name="Some Service" DisplayName="Some Service" Description="Monitoring and management of some service" Start="auto" Account="LocalSystem" ErrorControl="normal" Interactive="no"/> <ServiceControl Id="StartSomeService" Start="install" Stop="both" Remove="uninstall" Name="Some Service" Wait="yes"> <ServiceArgument>[P_USEREMAIL]</ServiceArgument> <ServiceArgument>[P_USERPASSWORD]</ServiceArgument> <ServiceArgument>[P_DEFAULTNAMINGCONTEXT]</ServiceArgument> <ServiceArgument>[P_USEHTTPPROXY]</ServiceArgument> <ServiceArgument>[P_PROXYADDRESS]</ServiceArgument> <ServiceArgument>[P_PROXYDOMAIN]</ServiceArgument> <ServiceArgument>[P_PROXYUSERNAME]</ServiceArgument> <ServiceArgument>[P_PROXYPASSWORD]</ServiceArgument> </ServiceControl>
Pourriez-vous expliquer ce que vous avez posté?
n'ai pas vraiment trouvé une réponse ici, c'est ainsi que j'ai résolu le même problème: p>
Il y a Deux ensembles de paramètres disponibles pour Windows Services : p>
1) Lorsque vous utilisez
Vous devriez probablement envisager d'utiliser un fichier de configuration de service Windows à la place.
Ouais. Je pourrais faire ça. J'étais juste intéressé de voir pourquoi les arguments ne fonctionnaient pas.
Mais où ne fonctionnent-ils pas? Ne sont-ils pas traités correctement par le programme d'installation? Comme écrit, il semble que vous exceptez l'installateur pour fonctionner comme application App config.
Les arguments ne semblent jamais frapper mon service car il démarre. Sauf si (je pourrais avoir) mal compris la documentation. Ces arguments doivent être tirés dans le service lorsqu'il démarre à partir du programme d'installation.
Avez-vous déjà lu ServiceInstall - Élément de démarrage à l'aide d'une valeur de l'attribut ?
Votre service accepte-t-il
argument de ligne de commande code>? C'est-à-dire à mon esprit, un moyen possible de lire la documentation. Bien que je suis d'accord avec votre évaluation initiale.