38 votes

Installation d'un service .NET à l'aide de InstallUtil

J'essaie d'installer un service .NET que j'ai écrit. Comme recommandé par MSDN, j'utilise InstallUtil. Mais j'ai mal compris comment je peux définir l'utilisateur du service par défaut sur la ligne de commande ou même dans le service lui-même. Désormais, lors de l'exécution de InstallUtil, une boîte de dialogue demandant à l'utilisateur de fournir les informations d'identification d'un utilisateur s'affiche. J'essaie d'intégrer l'installation du service dans une installation plus grande et j'ai besoin de l'installation du service pour rester silencieux.

46voto

Karim Points 8533

Je pense que je l'ai peut-être trouvé. Dans le service lui-même, le composant ServiceProcessInstaller créé automatiquement a une propriété "Compte" qui peut être définie sur "LocalService", "LocalSystem", "NetworkService" ou "User". La valeur par défaut était "Utilisateur", ce qui a dû afficher l'invite.

4voto

Aoi Karasu Points 2681

Comme vous avez remarqué, Karim, "Compte" de la propriété est la solution, ici. Pour ceux qui s'intéressent à des différences entre les contextes de sécurité fixées par cette propriété:

http://msdn.microsoft.com/en-us/library/system.serviceprocess.serviceaccount.aspx

Ci-dessus à l'aide de InstallUtil ou SC, j'aime l'idée de la création d'une AUTO-INSTALLATEUR:

http://www.codeproject.com/KB/dotnet/WinSvcSelfInstaller.aspx

même si j'ai trouvé ça dans la .Net 1.1 documentation:

Le ManagedInstallerClasstype prend en charge la .NET Framework l'infrastructure et n'est pas destiné à être utilisé directement à partir de votre code.

3voto

Craig Tyler Points 302

N'oubliez pas non plus l' utilitaire SC.exe, qui n'exige pas l'installation de visual studio. Vous pouvez simplement copier ce fichier sur le serveur sur lequel vous souhaitez créer le service ou même l' exécuter à distance . Utilisez le paramètre obj pour spécifier un utilisateur.

Apparemment, il existe une interface graphique pour cet outil, mais je ne l'ai pas utilisé.

0voto

Will Points 76760

Êtes-vous demandé pour le compte d'exécuter le service en vertu de, ou les droits à installer le service? Pour la deuxième, l'installation en tant qu'administrateur doit éviter que cela se produise. Pour la première, vous devez ajouter un ServiceProcessInstaller à votre Installateur.

Je crois que la conception de la surface pour un service a un lien pour créer un Projet d'installation. Sur que designer, vous pouvez ajouter un processus d'installation de Système de type.ServiceProcess.ServiceProcessInstaller. Les propriétés de cet objet vous permettent de régler le compte à utiliser pour le service.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X