Frage

Ich habe einen .NET Framework 1.1 Windows-Dienst, der auf einem Server funktioniert, aber auf einem anderen der OnStart-Methode wird nicht aufgerufen werden. Ich habe eine Trace-Anweisung als erste Zeile in der OnStart überschreibt und es wird nicht ausgeführt werden. Keine Ausnahme geworfen werden und die Windows Service Control Manager denken, dass der Dienst korrekt gestartet wird.

Wer eine Idee, was die OnStart Methode halten konnte aus aufgerufen wird?

Edit:. Hier ist die .config Einstellungen für Trace-Ausgabe

<configuration>
    <system.diagnostics>
        <trace autoflush="true" indentsize="4">
            <listeners>
                <add name="LogFileWriter" type="System.Diagnostics.TextWriterTraceListener,System" 
                        initializeData="c:\interface.log" />
            </listeners>
        </trace>
    </system.diagnostics>
</configuration>
War es hilfreich?

Lösung 3

als ein sehr obskures Problem mit einem einzelnen Server

Dies endete, die den Konstruktor für die Dienstinstanz verhinderten ausgeführt wird.

Andere Tipps

Wenn Sie Ihre Spur zu einem EventLogTrace Zuhörer Schreiben möglich ist es, dass das Dienstkonto auf der zweiten Maschine nicht genügend Rechte hat das Ereignisprotokoll zugreifen. Siehe meine Antwort auf diese Frage:

Windows-Dienst läuft, aber Ereignisprotokolle nicht funktioniert

Was andere Aktivitäten in dem OnStart Ereignisse auftreten, die das Ereignis vorschlagen wird nicht ausgelöst?

Wenn OnInit aufgerufen wird, dann überschreiben sie und stellen Sie den Handler selbst

protected override void OnInit(EventArgs e) {
  this.Start += new System.EventHandler(OnStart);
  base.OnInit(e);
}

Wenn OnInit nicht aufgerufen wird, das Hinzufügen AutoEventWireup = "true" auf <% @ Page Abschnitt helfen könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top