2016-10-11 3 views
1

Ich habe derzeit ein Programm, das korrekt als Dienst installiert wird, aber der Starttyp ist auf "Manuell" gesetzt. Wie stelle ich diese Anwendung als Starttyp = Automatisch ein?C# Einen Dienst installieren und beim Booten automatisch starten

static void Main(string[] args) { 

     if (System.Environment.UserInteractive) { 

      if (args.Length > 0) { 
       switch (args[0]) { 
        case "/install": { 
         ManagedInstallerClass.InstallHelper(new string[] { Assembly.GetExecutingAssembly().Location }); 
         break; 
        } 
        case "/uninstall": { 
         ManagedInstallerClass.InstallHelper(new string[] { "/u", Assembly.GetExecutingAssembly().Location }); 
        break; 
       } 
      } 
     } 
    } else { 
     if (!Environment.UserInteractive) { 
      // running as service 
      using (var service = new DocLogicJMS()) 
       ServiceBase.Run(service); 
     } else { 
      // running as console app 
      Start(args); 
      Console.WriteLine("Press any key to stop..."); 
      Console.ReadKey(true); 
      Stop(); 
     } 
    } 
} 

Und JMS ist:

namespace JMS { 
partial class DocLogicJMS { 
    /// <summary> 
    /// Required designer variable. 
    /// </summary> 
    private System.ComponentModel.IContainer components = null; 

    /// <summary> 
    /// Clean up any resources being used. 
    /// </summary> 
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> 
    protected override void Dispose(bool disposing) { 
     if (disposing && (components != null)) { 
      components.Dispose(); 
     } 
     base.Dispose(disposing); 
    } 

    #region Component Designer generated code 

    /// <summary> 
    /// Required method for Designer support - do not modify 
    /// the contents of this method with the code editor. 
    /// </summary> 
    private void InitializeComponent() { 
     this.ServiceName = "DocLogic JMS"; 
    } 

    #endregion 
} 

}

Antwort

0

Es scheint, diese Frage hier schon beantwortet wurde: How do I change a Windows Service's startup type in .NET (post-install)?

dies die upvoted Antwort zu sein scheint:

var svc = new ServiceController("ServiceNameGoesHere"); 
ServiceHelper.ChangeStartMode(svc, ServiceStartMode.Automatic); 
+0

Ich habe weitere Informationen zu meinem Problem hinzugefügt. Ich denke, das ist nah an dem, was ich brauche, aber nicht genau. –

+0

Aber du hast mich auf den richtigen Weg gebracht. Vielen Dank. Ich brauchte diese Zeilen: this.JMSserviceInstaller.StartType = ServiceStartMode.Automatic; this.JMSserviceInstaller.DelayedAutoStart = false; –

Verwandte Themen