0

サービスの開始時にメールを送信する Windows サービスを作成しました。サービスをデバッグしてコードで実行すると、メールが送信されるように、サービスは正常に機能します。しかし、サービスをインストールした後、サービスが機能しません。サービスをインストールした後、メールが送信されません。

誰かが私に解決策を提案してもらえますか?

4

3 に答える 3

0

デバッグサービスは少し難しいです。try..catchすべてのメソッドでメッセージをファイルに書き込むブロックを使用します。例えば

try
{
    ..
}
catch(Exception ex)
{
    SaveMessage(ex.ToString());
}

メッセージの保存方法は次のとおりです。

static void SaveMessage(string s)
{
    StreamWriter sw = new StreamWriter(@"C:\service_exceptions_file.txt", true);
    sw.WriteLine(s);
    sw.Close();
}        

すると、どこに問題があるかがわかります。

また、上記の方法でコードにいくつかのメッセージを追加して、コードのどの部分が問題なく動作しているかを確認することもできます

于 2013-06-12T07:34:09.330 に答える
0

Main()メソッドで、次の行を の前に追加するだけですServiceBase.Run(ServicesToRun);

#if DEBUG
            while(!Debugger.IsAttached)
            {
                Thread.Sleep(1000);
            }
#endif

次に、サービスをインストールして起動します。起動中に、デバッガーをサービスのプロセスにアタッチすると (デバッグ メニュー => プロセスにアタッチ)、デバッグできるようになります。

サービスを起動する前に、ブレークポイントを設定することを忘れないでください。

于 2013-06-12T09:04:46.487 に答える