1

私はWindowsサービスに不慣れで、開始メソッドでサービスの関数を呼び出す必要があるという問題に直面していますが、機能していません。サービスを開始すると、次のエラーが発生します

「ローカル コンピューターの MIM サービスが開始されてから停止しました。他のサービスまたはプログラムで使用されていない場合、一部のサービスは自動的に停止します」

私の現在のコードは以下のとおりです

public CHK()
{
    InitializeComponent();
}

protected override void OnStart(string[] args)
{
    Logger.Message("ChkUser", "Service Start", "");
    CheckUser();
}

protected override void OnStop()
{
    Logger.Message("MChkUser", "Service Stop", "");
}
public void CheckUser()
{
   //actions
}

CheckUser() メソッドを呼び出さなかった場合、サービスは問題なく動作します。この背後にある理由は何ですか?

4

1 に答える 1

3

最も可能性の高い理由は、CheckUser()メソッドがキャッチされていない例外をスローすることです...

例外が何であるかを確認するには、メソッドへの呼び出しを try-catch ブロック内に配置してみてください。

protected override void OnStart(string[] args)
{
    Logger.Message("ChkUser", "Service Start", "");
    try {
    CheckUser();
    } catch (Exception e) { 
      Logger.Message("ChkUser", e.Message, "");
    }
}
于 2013-07-27T20:41:31.617 に答える