質問

私は1台のサーバ上で動作しますが、他にのOnStartメソッドが呼び出されていないの.NET Framework 1.1のWindowsサービスを提供しています。私はOnStartメソッドのオーバーライドで最初の行にトレースステートメントを持っており、それが実行されていません。例外がスローされないと、Windowsサービスコントロールマネージャは、サービスが正常に開始されていると考えている。

誰もが呼び出されているからのOnStartメソッドを保つことができるもののアイデアがありますか?

編集:ここではトレース出力用の.configの設定があります。

<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>
役に立ちましたか?

解決 3

これが実行されているから、サービスインスタンスのコンストラクタを防止し、単一のサーバーと非常にあいまいな問題になってしまっています。

他のヒント

あなたはEventLogTraceリスナーに自分の痕跡を書いている場合は、第2のマシン上のサービスアカウントは、イベントログにアクセスするための十分な権限を持っていない可能性があります。この質問に対する私の答えを参照してください。

Windowsサービスが実行されているが、イベントログが機能していない

イベントが発射されていないお勧めのOnStartイベントで発生する他のどのような活動?

のOnInitが呼び出されている場合は、それをオーバーライドして、ハンドラを自分で設定する

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

のOnInitは、<%@のページセクションには役立つかもしれないにAutoEventWireup属性= "true" を追加し、呼び出されない場合ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top