Windows Service-Problem

Eigener Bereich für die Entwickler unter uns! Add-Ins, aber auch andere Programme.
Antworten
jayrock
Foren-Einsteiger
Beiträge: 32
Registriert: 27. Apr 2010, 08:13

Windows Service-Problem

Beitrag von jayrock »

Hallo,

ich habe eine kleines AddIn programmiert. Es besteht im Wesentlichen aus einem Windows-Service und einem Tab für die Konsole.

Zunächst habe ich einen Installer mit InnoSetup erstellt. Das Tab wird ins WHS-Verzeichnis installiert, der Service in ein separates Programmverzeichnis. Mit einen kleinen Batch-File und installutil wird der Service registriert. Das ganze wird über Remote Desktop installiert und funktioniert soweit wunderbar.

Nun möchte ich das AddIn natürlich über die Konsole installieren. Also ein neues Install-Package mit Wix erstellt. Dateien zum Kopieren sind genau die gleichen, und am Ende startet das Batch-File wie gehabt. Nur leider ist es nun so, dass der Service direkt wieder beendet wird; das ist auch beim erneuten Starten des Dienstes so.

Alternativ habe ich ServiceInstall in WiX verwendet - das Verhalten ist das gleiche, der Service startet und stoppt sofort wieder.

Nun weiß ich nicht so recht, wo ich mit der Fehlersuche starten soll. Irgendwelche Tipps?

Besten Dank,

jayrock
AndreasM
Foren-Mitglied
Beiträge: 89
Registriert: 2. Jan 2008, 23:13

Re: Windows Service-Problem

Beitrag von AndreasM »

Schreibt dein Service Informationen über seine Aktivitäten in ein Logfile oder das EventLog? Wenn nicht, würde ich dringend empfehlen das zu implementieren, ansosten ist der Service nur eine Black-Box in die Du nicht reinschauen kannst. Wenn beim Starten des Dienstes eine Exception ausgelöst wird sollte diese dann geloggt werden. Somit solltest Du einen guten Startpunkt für die Fehlersuche haben. Evtl. hat Dein Dienst Berechtigungsprobleme. Hierfür kannst Du Process Monitor von Sysinternals (http://live.sysinternals.com/procmon.exe) zur Fehlersuche verwenden.

Andreas M.
jayrock
Foren-Einsteiger
Beiträge: 32
Registriert: 27. Apr 2010, 08:13

Re: Windows Service-Problem

Beitrag von jayrock »

Hallo Andreas,

danke für die Antwort. Guter Tipp, aus "meinem" Log sehe ich im Fehlerfall nur, dass der Dienst gestartet wird - wäre auch das normale Resultat. Falls Dateien nucht lesbar sind, gibt's auch alle Fälle eine Exception, und das tritt in meinem Fall nicht auf. Ggf. werde ich das Log noch etwas geschwätziger machen.

Inzwischen vermute ich aber auch, dass es mit Berechtigungen zusammenhängt. Diesen Punkt werde ich zuerst angehen. Ich stricke gerade einige Dinge um, um das genauer feststellen zu können. Melde mich, sobald ich Ergebnisse habe.

Eine Frage noch: Welcher Benutzer wird von dem *.msi-Package über die Console verwendet, ist das "Administrator"?

Beste Grüße,

jayrock
AndreasM
Foren-Mitglied
Beiträge: 89
Registriert: 2. Jan 2008, 23:13

Re: Windows Service-Problem

Beitrag von AndreasM »

Ja, das .msi-Paket wird von der WHS Console im Benutzerkontext des "Administrator"-Accounts installiert.

Gruß
Andreas M.
jayrock
Foren-Einsteiger
Beiträge: 32
Registriert: 27. Apr 2010, 08:13

Re: Windows Service-Problem

Beitrag von jayrock »

OK, hab das Problem gefunden und behoben. Allerdings verstehe ich, warum das überhaupt ein Problem war.

Also: Ich wende in meinem Service eine Methode aus einer dll auf meine Daten an. Dieser Aufruf wird überwacht, falls es kein Ergebnis gibt wird ein Log-Eintrag erzeugt und der Service läuft normal weiter. Da ich momentan an anderen Teilen der Applikation arbeite, habe ich diese dll noch nicht in das Installationspackage intgegriert. Bei der ersten Variante (mittels Innosetup) gab es dann also den oben genannten Log-Eintrag, was aber nicht weiter störte.

Anders beim .msi-Package. Hier wird tatsächlich eine Exception geworfen, und zwar bei dem Aufruf, dessen Ergebnis ich ja eigentlich sowieso programmatisch überwache:

Code: Alles auswählen

System.IO.FileNotFoundException: Die Datei oder Assembly helper.dll, Version=1.4.0.0, Culture=neutral, PublicKeyToken=a9a5dfc20b8d6175 oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Dateiname: helper.dll, Version=1.4.0.0, Culture=neutral, PublicKeyToken=a9a5dfc20b8d6175


Seltsam ist eben, dass die Innosetup- und WiX-generierten Packages unterschiedlich reagieren. Den Fehler habe ich deswegen erst einmal an völlig falscher Stelle gesucht. :oops:

Falls jemand die Erklärung kennt, würde ich mich über eine kurze Info freuen.

Schöne Grüße,
jayrock
AndreasM
Foren-Mitglied
Beiträge: 89
Registriert: 2. Jan 2008, 23:13

Re: Windows Service-Problem

Beitrag von AndreasM »

Wenn Du die beiden Pakete hier bereitstellst kann ich mir das gerne mal ansehen. Im Moment kann ich mir nämlich nicht recht vorstellen, dass das unterschiedliche Verhalten allein an der eingesetzten Installationstechnologie liegen soll.

Andreas M.
jayrock
Foren-Einsteiger
Beiträge: 32
Registriert: 27. Apr 2010, 08:13

Re: Windows Service-Problem

Beitrag von jayrock »

Hallo Andreas,

danke für dein Angebot. Ich kann's mir auch nicht erkären, inzwischen bin ich aber weitergekommen (s. vorheriger Post) und habe diese Versionen der Pakete nicht mehr. Belassen wir's einfach dabei und investieren keine Zeit mehr in das Problem - und ich kann mich freuen, dass es weg ist (und ärgern, dass ich nicht weiß, warum :? )

Schöne Grüße,

jayrock
Antworten