首页 > 解决方案 > 如何使用 AspNetCore.HealthChecks.SqlServer 检查多个数据库?

问题描述

目前我已经使用这些代码检查了一个数据库:

services.AddHealthChecks()
               .AddSqlServer(
                 connectionString: Configuration.GetConnectionString("DefaultConnection"),
                 healthQuery: "SELECT 1;",
                 name: "sql",
                 failureStatus: HealthStatus.Degraded,
                 tags: new string[] { "db", "sql", "sqlserver" }
               );

但是如何检查多个数据库?我正在使用 .NET Core 3.1 和 AspNetCore.HealthChecks.SqlServer 版本=3.1.1。

标签: c#health-check

解决方案


添加另一种AddSqlServer方法,但使用不同的name. name必须是唯一的。

services.AddHealthChecks()
    .AddSqlServer(
        connectionString: Configuration.GetConnectionString("DefaultConnection"),
        healthQuery: "SELECT 1;",
        name: "sql",
        failureStatus: HealthStatus.Degraded,
        tags: new string[] { "db", "sql", "sqlserver" })
    .AddSqlServer(
        connectionString: Configuration.GetConnectionString("AnotherConnection"),
        healthQuery: "SELECT 1;",
        name: "sql2",
        failureStatus: HealthStatus.Degraded,
        tags: new string[] { "db", "sql", "sqlserver" }
           );

推荐阅读