我们的 IT 管理员要求在我们的 Web 应用程序中使用 api 端点作为健康检查。api 中的逻辑应该执行任何简单的数据库查询,以确保 Web 服务器可以连接到数据库。这个想法是,此 api 调用失败可以触发 Web 服务器的自动停用等。
这肯定会起作用,但似乎有点自制。有没有更好的方法使用开箱即用的工具等来实现这一点?我们在 Microsoft 堆栈上,因此 Web 框是 IIS 8,数据库是 SQL 2014。
答案1
您可以按照建议的方式进行操作,但是您需要定期从“某个地方”进行 api 调用。在数据库关闭和下一次 ping 检测到它之间的这段时间内,您仍然会遇到不良行为。
另一种解决方案是在全局处理程序中捕获错误。(在 ASP.NET 中,您可以在 Global.asax 文件中执行此操作。)您可以检查错误并根据需要进行详细分析,例如,如果与 DB 的连接已超时,则采取一项操作,或者如果连接有效但存在权限错误,则采取另一项操作。请注意,只有当其他程序未先处理 DB 连接错误时,该错误才会进入全局处理程序。
建议:尝试将“你对此做什么”部分作为与检测方法不同的机制。这样你甚至可以同时实现这两种想法,或者第三种想法,并共享相同的结果操作。