1

ASP.NET C#で記述されたアプリケーションがあり、約2日間実行してから、再度起動するまで停止します。アプリケーションで問題が発生することがありますが、現時点では、アプリケーションを続行するには手動による介入が必要です。(これまでのところ、SQLサーバー自体は問題ではありませんでした)

動作中、アプリケーションは少なくとも20分ごとにログデータベーステーブルに行を書き込みます。これらの行がない場合は、アプリケーションがタスクを終了したか、続行するために支援が必要であることを意味します。このような場合、メールまたはその他の通知を受け取りたいと思います。

アプリケーションがログデータベーステーブルへのこれらの行の書き込みを停止したかどうか、または停止したときに検出して通知するための最良の方法は何ですか?

作業が簡単になれば、ファイルへの書き込みやTCP / UDPパケットの送信など、他の通常のタスクをアプリケーションに実行させることができます。

4

3 に答える 3

1

このアプリケーションの設計に関する明らかな懸念は別として。現在の設計では、ログファイルを監視するWindowsサービスを作成できる可能性があります。N分より古い場合は、を発射しますSystem.Net.Mail.MailMessage

于 2013-02-18T14:33:53.793 に答える
0

グローバルアプリケーションエラーハンドラー(Global.asaxのApplication_Error)から電子メールを送信できます。データベースを監視するWindowsサービスは別の解決策ですが、短いスクリプト/コマンドラインアプリケーションを作成し、Windowsスケジューラで実行する方がよい場合があります。フットプリントが低く、書き込みとインストールが簡単です。

于 2013-02-18T15:58:32.273 に答える
0

アプリケーションにパケットの送信などを実行させることができる場合、アプリケーションに独自のアラートを送信させることができなかった理由はありますか?アラートは、アプリケーションが終了したとき、または「ヘルプ」が必要なときに送信する必要があります(何らかの手動入力または確認を想定しています)。アプリケーションがこれらのいずれかが発生したことを通知できると想定するのは合理的です。それで...アプリケーションがアラートを送信できないのはなぜですか?ASP.NETアプリは、SMTPにアクセスし、を使用して非常に簡単に電子メールを送信できますSystem.Net.Mail.SmtpClient。完全に優れた電子メールクライアントクラスにアクセスできるプログラムに代わって、別のプログラムが電子メールを送信するのは、私には本当に奇妙に思えます。

于 2013-02-18T15:50:53.270 に答える