Laden...

Windows Service Timeout

Erstellt von MuhammedC# vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.073 Views
M
MuhammedC# Themenstarter:in
222 Beiträge seit 2005
vor 15 Jahren
Windows Service Timeout

Hi,

ich habe folgendes Problem:

Auf einem betakten PC mit 512MB soll zum System Start ein .NET Service gestartet werden. Der Rechner fährt zum System Restart einige Sachen hoch, unter anderem eine Datenbank. Mit anderen Worten der Rechner hat richtig zu ackern.

Jetzt passiert folgendes scheinbar hat der Rechner nicht genug Power um meinen Service in dem 30 sekunden Timeout sauber zu starten. In meiner OnStart Methode passiert eigentlich nix anderes ausserdem Schreiben eines Logeintrages (log4net), natürlich wird die log4net Config vorher geladen und verarbeitet. Direkt danach wird ein neuer Thread gestartet indem die eigentliche Initialisierung abläuft.

Kann es sein das das .NET Framework nicht schnell genug geladen wird?
Kann ich eine Dependency einrichten, welche dem Service erlaubt auf das Framework zu warten?

Gruß MC#

X
1.177 Beiträge seit 2006
vor 15 Jahren

huhu,

Der Service sollte schon binnen 30 Sekunden gestartet werden können. Schicke doch mal mit System.Diagnostics.Debug Nachrichten - die können dann z.B. mit DebugMon von Sysinternals angeguckt werden. Hast Du auch sicher kein Sleep() drin? Das wird gerne zum Attachen des Debuggers in Tutorials empfohlen.

Edit: naja, mal richtig lesen^^ Kannst du den Service später dann per Hand von alleine starten? Oder bekommst du da auch einen Timeout?

😃

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

3.971 Beiträge seit 2006
vor 15 Jahren

Bin zwar kein Freund von ngen.exe, aber in diesem Fall könnte es sinnvoll sein es zu benutzen.

ngen.exe erstellt ein fertiges Assembler-Image deiner Anwendung. Das erspart dir vorallem die Ladezeit deiner Anwendung, wo erst kräftig der JIT zu tun hat.

Eventuell solltest du ngen.exe auch mit über deine Verweise laufen lassen.

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...

M
MuhammedC# Themenstarter:in
222 Beiträge seit 2005
vor 15 Jahren

Hi,

ja danke erst mal. NGEN ist so ne Sache... für ich das denn bei der Installation aus oder einmal nach dem Kompilieren und es läuft dann auf jeder Windows Maschine. Wenn ich den Service von Hand starte läuft er innerhalb weniger Sekunden (2 oder 3), das ist kein Problem...

3.971 Beiträge seit 2006
vor 15 Jahren

Bei der Installation

Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...