我有一个用ASP.NET C#编写的应用程序应该运行大约2天,然后停止直到它再次启动。 应用程序有时遇到一些麻烦,目前需要手动干预才能继续。 (到目前为止,SQL服务器本身并不是问题)
工作时,应用程序至少每20分钟将一行写入日志数据库表。 如果这些行不存在,则表示应用程序要么完成任务要么需要帮助才能继续。在这些情况下,我想收到一封电子邮件或其他通知。
如果应用程序停止将这些行写入日志数据库表,检测并通知我的最佳方法是什么?
如果它使事情变得更容易,我可以让应用程序执行一些其他常规任务,例如写入文件或在某处发送TCP / UDP数据包。
答案 0 :(得分:1)
除了对此应用程序的设计的明显担忧。根据您当前的设计,您可以编写一个Windows服务来监视日志文件。如果它超过N分钟,则触发System.Net.Mail.MailMessage
。
答案 1 :(得分:0)
如果您能够使应用程序执行类似发送数据包的操作,是否有任何理由无法让应用程序发送自己的警报?当应用程序完成或需要“帮助”(我假设某种手动输入或确认)时,需要发送警报。可以合理地假设应用程序可以判断这些事情何时发生,所以......为什么应用程序无法发送警报? ASP.NET应用程序可以使用System.Net.Mail.SmtpClient
轻松访问SMTP并发送电子邮件。对于我来说,有一个单独的程序代表一个可以访问一个完美的电子邮件客户端类的程序发送电子邮件,这似乎很奇怪。
答案 2 :(得分:0)
您可以从全局应用程序错误处理程序(Global.asax中的Application_Error)发送电子邮件。监视数据库的Windows服务是另一种解决方案,但是编写一个简短的脚本/命令行应用程序并使用Windows调度程序运行它可能会更好。它占地面积更小,更易于编写和安装。