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.
Réponses
Trop de publicités?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.
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.
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é.
Ê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.