应用程序检测信号监视,可能通过SQL服务器

本文关键字:SQL 服务器 检测 信号 监视 应用程序 | 更新日期: 2023-09-27 18:00:09

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

工作时,应用程序至少每20分钟向日志数据库表写入一行。如果没有这些行,则表示应用程序已完成任务或需要帮助才能继续。在这种情况下,我想收到一封电子邮件或其他通知。

如果应用程序停止向日志数据库表写入这些行,检测并通知我的最佳方式是什么?

如果它让事情变得更容易,我可以让应用程序执行一些其他常规任务,比如写入文件或在某个地方发送TCP/UDP数据包。

应用程序检测信号监视,可能通过SQL服务器

除了这个应用程序设计的明显问题之外。考虑到您当前的设计,您可能会编写一个windows服务来监视日志文件。如果时间超过N分钟,则启动System.Net.Mail.MailMessage

如果你能让应用程序做一些类似发送数据包的事情,那么你有什么理由不能让应用程序发送自己的警报吗?警报需要在应用程序完成时或需要"帮助"时发送(我假设是某种手动输入或确认)。可以合理地假设,应用程序可以判断这些事情发生的时间,那么…为什么应用程序不能发送警报呢?ASP.NET应用程序可以使用System.Net.Mail.SmtpClient非常轻松地访问SMTP和发送电子邮件。对我来说,有一个单独的程序代表一个可以访问非常好的电子邮件客户端类的程序发送电子邮件似乎真的很奇怪。

您可以从全局应用程序错误处理程序(global.asax中的application_error)发送电子邮件。监控数据库的Windows服务是另一种解决方案,但最好编写一个简短的脚本/命令行应用程序,并使用Windows调度程序运行它。它占地面积更小,编写和安装更容易。