2009-08-05 6 views

Répondre

3
+0

Pouvez-vous utiliser ceci pour définir le nom d'utilisateur et mot de passe à l'exécution (plutôt que de la compilation)? N'auriez-vous pas besoin de pouvoir accéder aux programmes d'installation déjà compilés dans votre exécutable de service? Je vais probablement devoir aller sur la route WMI à la place. –

+0

Votre service peut avoir sa propre classe d'installation qui hérite de "System.Configuration.Install.Installer". Nous utilisons cette classe héritée et nous lui associons un formulaire. Le formulaire apparaît pendant l'installation et invite à diverses choses, y compris l'utilisateur/mot de passe. Ensuite, dans la classe Installer, vous redéfinissez OnBeforeInstall et vous définissez Moi.ServiceProcessInstaller1.Username. – MattH

+0

Et modifier le compte de service Windows pour WinService qui existe encore? – Kiquenet

0

Il y a un peu plus sur le réglage des paramètres de service et d'autres choses dans A Windows Service without a template Sa page 5 dans le bit sur la personnalisation d'un service.

-1

Normalement, vous serez en mesure de transmettre ces informations d'identification à la classe Installer. Vous pouvez le coder en dur ou le passer en argument de ligne de commande. La seconde approche est plus appropriée, mais elle nécessitera que vous analysiez les arguments de ligne de commande inutilement.

Je vous propose une troisième approche ...

<ShamelessPlug>

Salut! Je suis un développeur pour un source windows service hébergement cadre appelé Daemoniq. Et en passant les informations d'identification via la ligne de commande est l'une des fonctionnalités de . Vous pouvez le télécharger à partir http://daemoniq.org

caractéristiques actuelles comprennent:

    emplacement de service agnostique conteneur
  • via les CommonServiceLocator
  • définir les propriétés de services communs comme serviceName, DisplayName Description et serviceStartMode via app.config
  • exécuter plusieurs services Windows sur le même processus
  • définir les options de récupération via app.config
  • services fixes dépendaient via app.config
  • ensemble des informations d'identification de processus de service via la ligne de commande
  • installer, désinstaller, les services de débogage via la ligne de commande

</ShamelessPlug >

À votre santé!

+0

plug sans vergogne pour quelque chose qui n'est plus là. – Grubsnik

4

L'ajout ci-dessous à un installateur de projet affectera les informations de connexion au service pendant l'installation.

public ProjectInstaller() 
    { 
     InitializeComponent(); 

     serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.<account type>; 
     serviceProcessInstaller1.Username = <domain\userId>; 
     serviceProcessInstaller1.Password = <password>; 
    } 
+0

Si vous ne spécifiez pas de compte dans le code et que la propriété ServiceProcessInstaller pour compte est définie sur Utilisateur, une boîte de dialogue de formulaire s'ouvrira pendant l'installation permettant à la personne effectuant l'installation de spécifier un compte utilisateur et un mot de passe. – JohnL

Questions connexes