我用 C# 制作了一个简单的通知程序命令行应用程序。基本上我使用 Windows 任务调度程序并将其设置为在特定时间运行此命令行应用程序。
当这个时候被击中时,命令行应用程序运行所有通知从数据库(使用 linq to sql)格式化并通过 smtp 发送给正确的人。
现在我应该如何处理这些情况
- 发生数据库错误
解决方案:向管理员发送电子邮件,通知他们失败并检查。
- 发生 smtp 错误
解决方案:????
因此,这确实是可能出错的两件事。这可能有不同的组合。
可能会出现数据库错误,也可能会出现smtp错误,或者只有一个或另一个可能会出现。
那么如何将此信息提供给管理员或其他人,以便他们进行修复。我非常怀疑管理员会每天去检查通知是否有效。
所以基本上如何让它安全地失效,或者至少让它在出现问题时管理员可以来修复它,然后手动运行通知程序并让所有内容恢复同步。
最佳答案
您有几个选择。
将错误信息写入日志。让某些运算符(operator)每隔一段时间检查日志成为一种程序。
它是否调用了其他服务?
但是,如果数据库不仅仅被您的应用程序使用,其他人很可能会注意到。电子邮件服务器也是如此。如果停机,那么我敢打赌很多人都会打电话。请注意,您的情况排除了丢失的网络连接(例如死掉的交换机或错误配置的路由器)。
顺便说一句,如果它检测到 SMTP 已备份,那么它应该通知某人它在给定时间段内已关闭。数据库服务器也是如此。
最后,所有错误情况都应写入您的系统日志。写入 Windows 事件日志非常简单。如果您的系统管理员遵循普遍接受的协议(protocol),他们应该经常监控这些协议(protocol)。
关于c# - 当这种情况发生时如何通知一个人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3242094/