Utilisation de InstallUtil pour installer un service Windows avec des paramètres de démarrage
Je suis en utilisant InstallUtil pour installer mon service et je n'arrive pas à comprendre comment spécifier les paramètres de démarrage pour!
Voici mon programme d'installation de la sous-classe:
[RunInstaller(true)]
public class ServerHostInstaller : Installer
{
private ServiceInstaller m_serviceInstaller;
private ServiceProcessInstaller m_serviceProcessInstaller;
private static string s_usage = "Usage:\ninstallutil /i /username=<user_name> /password=<user_password> NCStub.Server.Host.exe";
public ServerHostInstaller()
{
m_serviceInstaller = new ServiceInstaller();
m_serviceInstaller.ServiceName = Program.ServiceName;
m_serviceInstaller.DisplayName = Program.ServiceName;
m_serviceInstaller.StartType = ServiceStartMode.Automatic;
m_serviceProcessInstaller = new ServiceProcessInstaller();
m_serviceProcessInstaller.Account = ServiceAccount.User;
Installers.Add(m_serviceInstaller);
Installers.Add(m_serviceProcessInstaller);
}
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
string userName = this.Context.Parameters["username"];
if (userName == null)
{
Console.WriteLine(s_usage);
throw new InstallException("Missing parameter 'username'");
}
string userPass = this.Context.Parameters["password"];
if (userPass == null)
{
Console.WriteLine(s_usage);
throw new InstallException("Missing parameter 'password'");
}
m_serviceProcessInstaller.Username = userName;
m_serviceProcessInstaller.Password = userPass;
}
}
Quelqu'un peut-il indiquer comment puis-je spécifier les paramètres de démarrage du service?
source d'informationauteur mark
Vous devez vous connecter pour publier un commentaire.
Trouvé.
J'ai réécrit la méthode d'Installation comme suit:
Bien que je donne le prédéfini de paramètres de ligne de commande (--service), le code est facilement adaptable pour passer de vrais arguments de ligne de commande, il suffit d'utiliser le même modèle pour le passage de la nom d'utilisateur et mot de passe paramètres.
Je sais que c'est un vieux post, mais j'ai pensé poster ma réponse. Je l'ai fait dans une .net 4 service à l'aide de la BeforeInstall événement.
La ServiceProcessInstaller de BeforeInstall événement:
La installé le service se présente comme suit:
Il exécute très bien, et je peux examiner les paramètres de l'intérieur de la fonction principale du service.