1

我有一个用 ASP.NET C# 编写的应用程序,它应该运行大约 2 天,然后停止,直到它再次启动。应用程序有时会遇到一些麻烦,目前需要人工干预才能使其继续运行。(到目前为止,SQL Server 本身从来都不是问题)

工作时,应用程序至少每 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 应用程序可以使用System.Net.Mail.SmtpClient. 让一个单独的程序代表一个可以访问一个非常好的电子邮件客户端类的程序发送电子邮件对我来说似乎真的很奇怪。

于 2013-02-18T15:50:53.270 回答