ServiceBase.Run führt unter Win2000 zum Absturz

Hallo mitteinander,

mein Problem ist das folgende:
Ich habe eine Dienst mit C# und .NET erstellt. Dieser Funktioniert auch unter Windows XP und WIndows 2003 Server problemlos.
Versuche ich den Dienst jedoch unter Windows2000 (mejrere intsanzen getestet) zu starten Hängt sich der Prozess beim Aufruf von ServiceBase.Run kommentarlos auf. Es werden keine Exceptions geworfen und der Prozess selber wird erstellt und es wird Speicherplatz reserviert. Allerdings wird nichtmal die erste Anweisung und OnStart ausgeführt.

Zudem habe ich das Problem, dass wenn ich versuche die ganze Geschichte zu debuggen ich nur den Fehler

„Es sind keine Symbole für Aufruflistenrahmen geladen. Der Quellcode kann nicht angezeigt werden.“

bekomme. Der Dienst ist als Debuggversion erstellt und die entsprechenden .pdb Datreien befinden sich sogar im gleichen Ordner.

Hat irgendwer eine Idee wo das Problem liegt?

Hi,

Ist der dienst mit .Net Framework 2.0 erstellt worden?
Ist .Net 2.0 dann unter Win2000 installiert ?

Findest du was im Ereignisprotokoll von Windows?

mfg
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ist der dienst mit .Net Framework 2.0 erstellt worden?
Ist .Net 2.0 dann unter Win2000 installiert ?

Findest du was im Ereignisprotokoll von Windows?

mfg
Martin

Ja der Dienst ist mit .NET2 erstellt und das Framework ist auf der Win2000-Maschine installiert. In der Ereignissanzeige steht leider auch nichts. Nichmall eine Meldung, dass der Dienst nicht gestartet werden konnte.

Ich habe mittler Weile ein neues Projekt erstellt und den Code meines Dienstes nach und nach dort eingebunden. Jetzt startet der Dienst auch unter Win2000.

Das Ursprüngliche Gerüst des Dienstes wurde von einem Kollegen entwickelt. Auf irgendeine Weise hat er es bewerkstelligt, dass der Dienst Bibliotheken von System.Windows.Forms benutzen kann. Um genau zu sein, hat er Fenster mit Fehlermeldungen auf der Oberfläche anzeigen lassen. Diese Bibliothek ist in Diensten nicht zulässig (da Dienste ohne Benutzeranmeldung und damit ohne Oberfläche gestartet werden können). Auch nach entfernen des Entsprechenden Codes, hat sich keine Veränderung gezeigt. Fakt ist aber, dass ich nicht weiß was mein Kollege getan hat, um die Anwendung dazu zu überreden die Fenster unter WinXP ohne Absturz darzustellen. Ich weiß also nicht sicher ob der Grund meines Problems dort lag aber nach dem erstellen eines neuen Projekts ohne Fenster, arbeitet der Dienst nun auch unter Win 2000.

Trotzdem danke für die Hilfe.

Hi!

[…]

Das Ursprüngliche Gerüst des Dienstes wurde von einem Kollegen
entwickelt. Auf irgendeine Weise hat er es bewerkstelligt,
dass der Dienst Bibliotheken von System.Windows.Forms benutzen
kann. Um genau zu sein, hat er Fenster mit Fehlermeldungen auf
der Oberfläche anzeigen lassen. Diese Bibliothek ist in
Diensten nicht zulässig (da Dienste ohne Benutzeranmeldung und
damit ohne Oberfläche gestartet werden können). Auch nach

Das ist so nicht richtig. Natürlich kannst Du Klassen aus System.Windows.Forms auch im Rahmen eines Dienstes verwenden. Sobald tatsächlich ein Fenster gezeigt werden soll, erhältst Du normalerweise eine entsprechende Exception, aber Du kannst z.B. über die Diensteverwaltung festlegen, dass der Dienst auch mit dem Desktop interagieren, d.h. Fenster darstellen, darf.
Wenn dieses Häkchen gesetzt ist, kannst Du aus dem Dienst heraus Fenster aufmachen, solange Du lustig bist…

entfernen des Entsprechenden Codes, hat sich keine Veränderung
gezeigt. Fakt ist aber, dass ich nicht weiß was mein Kollege
getan hat, um die Anwendung dazu zu überreden die Fenster
unter WinXP ohne Absturz darzustellen. Ich weiß also nicht
sicher ob der Grund meines Problems dort lag aber nach dem
erstellen eines neuen Projekts ohne Fenster, arbeitet der
Dienst nun auch unter Win 2000.

Trotzdem danke für die Hilfe.

Gruß,
Martin