サービスの開始時にメールを送信する Windows サービスを作成しました。サービスをデバッグしてコードで実行すると、メールが送信されるように、サービスは正常に機能します。しかし、サービスをインストールした後、サービスが機能しません。サービスをインストールした後、メールが送信されません。
誰かが私に解決策を提案してもらえますか?
サービスの開始時にメールを送信する Windows サービスを作成しました。サービスをデバッグしてコードで実行すると、メールが送信されるように、サービスは正常に機能します。しかし、サービスをインストールした後、サービスが機能しません。サービスをインストールした後、メールが送信されません。
誰かが私に解決策を提案してもらえますか?
デバッグサービスは少し難しいです。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();
}
すると、どこに問題があるかがわかります。
また、上記の方法でコードにいくつかのメッセージを追加して、コードのどの部分が問題なく動作しているかを確認することもできます
Main()
メソッドで、次の行を の前に追加するだけですServiceBase.Run(ServicesToRun);
。
#if DEBUG
while(!Debugger.IsAttached)
{
Thread.Sleep(1000);
}
#endif
次に、サービスをインストールして起動します。起動中に、デバッガーをサービスのプロセスにアタッチすると (デバッグ メニュー => プロセスにアタッチ)、デバッグできるようになります。
サービスを起動する前に、ブレークポイントを設定することを忘れないでください。