Windows Service (Self-installer) lässt sich nicht starten

  • C#
  • .NET (FX) 3.0–3.5

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von lurker.

    Windows Service (Self-installer) lässt sich nicht starten

    Hallo Leute,

    ich bin gerade dabei ein Windows Service zu erstellen. Dabei möchte ich nicht auf div. Installer (z.B. InstallShield) zurückgreifen. Ich habe tatsälich auch einige Tutorials gefunden (Stackoverflow - c#, Publishing Windows Service, etc..). Mit nachfolgenden Code lässt sich das Windows Service auch perfekt installieren, sodass es im DienstExplorer angezeigt wird:
    Die Main in Program.cs
    Spoiler anzeigen

    C#-Quellcode

    1. static void Main()
    2. {
    3. TransactedInstaller ti = new TransactedInstaller();
    4. ArrayList cmdline = new ArrayList();
    5. cmdline.Add(String.Format("/assemblypath={0}", Assembly.GetExecutingAssembly().Location));
    6. cmdline.Add("/logToConsole=false");
    7. cmdline.Add("/showCallStack");
    8. InstallContext ctx = new InstallContext("installer_logfile.log", cmdline.ToArray(typeof(string)) as string[]);
    9. ti.Installers.Add(new ProjectInstaller());
    10. ti.Context = ctx;
    11. ti.Install(new Hashtable());
    12. ServiceController service = new ServiceController("MeinService");
    13. TimeSpan timeout = TimeSpan.FromMilliseconds(15000);
    14. service.Start();
    15. }


    Nachdem es installiert wurde, sollte es gestartet werden. Dazu ist der zweite bereich der Methode zuständig:
    Spoiler anzeigen

    C#-Quellcode

    1. ServiceController service = new ServiceController("MeinService");
    2. TimeSpan timeout = TimeSpan.FromMilliseconds(15000);
    3. service.Start();


    Doch hierbei kommt es zu dem eingestellten Timeout. Es wird Ein Ausnahmefehler des Typs "System.InvalidOperationException" ist in System.ServiceProcess.dll aufgetreten. Zusätzliche Informationen: Der Dienst MeinService kann nicht auf dem Computer . gestartet werden. dieser Fehler angezeigt (in VS2013).
    Wobei das Service aber unter "MeinService" erstellt wurde (Ich kann es über die Eingabeaufforderung mit sc delete "MeinService" wieder löschen.) Natürlich läuft VS2013 und die Eingabeaufforderung als Administrator

    Wenn ich das Service über die Dienste starte kommt es ebenfalls zu einen Fehler (Siehe anhang).

    Meine Vermut soweit ist es, dass ich irgendwo die Klasse, welche von ServiceBase erbt angeben muss. Nur so kann es gestartet werden und es gibt eine Rückmeldung und dafür kein Timeout. Ich habe jedoch beobachtet, dass ein BreakPoint im Konstruktor oder in z.B. onStart(string[] args) niemals ausgelöst wird.

    Da dies ziemlich Verwirrend ist und ich absolut keinen Anhaltspunkt habe, hänge ich euch einfach mal das Projekt an. Falls jemand die Zeit finden und einen hilflosen Programmierer auf seinen Weg zurückbringen möchte, darf mir jeden auch noch so kleinen Strohalm reichen, an dem ich mich noch festhalten kann ;) .

    Um jedliche Idee würde ich mich freuen.
    Bilder
    • Dienste Fehler.PNG

      73,86 kB, 977×649, 88 mal angesehen
    • Unbenannt.PNG

      65,58 kB, 676×621, 71 mal angesehen
    Dateien
    Mit freundlichen Grüßen



    GVI (Teil1/2): 80%

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „lurker“ ()

    Hallo,

    Zeit habe ich gerade nicht soviel - ich finde das Tool topshelf genial für diesen Zweck...

    Manfred
    Wenn du mich schon mit einem Hinweis auf Google IxQuick abspeisen willst...
    So schreib mir doch wenigstens die Suchbegriffe dazu :thumbup:
    Danke für deine Rückmeldung.

    Ich habe nun schlussendlich doch den Fehler gefunden:
    Ich habe NACHDEM ich das Windwos-Service Projekt erstellt habe die .Net Frameworkversion von 4.5 auf 3.5 heruntergeschraubt. Doch dabei kommt es scheinbar zu wechselwirkungen, sodass es sich nicht mehr ohne Fehler starten lässt. Die Lösung ist ganz einfach: Einfach schon beim Projekt erstellen die richtige Version auswählen.
    Mit freundlichen Grüßen



    GVI (Teil1/2): 80%