EntityFramework Core健康檢查

前言

.NET Core提供對應方法可進行健康檢查,那麼在EF Core中是否也提供了相應的方式呢?EF Core 2.2+(包含2.2)版本提供了針對上下文的健康檢查,接下來咱們直接利用.NET 5.0版本進行演示數據庫

EntityFramework Core 5.0健康檢查

咱們知道在.NET Core中使用健康檢查直接在對應服務中添加健康檢查擴展方法便可,以下:app

services.AddHealthChecks()

在上述基礎上咱們再添加針對EF Core的診斷包才能進行健康檢查,首先,咱們安裝診斷包spa

Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore3d

接下來咱們使用上述診斷包針對以下上下文健康檢查擴展方法AddDbContext,同時咱們注入示例上下文,以下:code

services.AddHealthChecks().AddDbContextCheck<EFCoreDbContext>();

services.AddDbContext<EFCoreDbContext>(options =>
{
    options.UseSqlServer(@"Server=.;Database=EFCore;Trusted_Connection=True;");
});

最後咱們在路由中映射健康檢查路由節點,以下:blog

app.UseEndpoints(endpoints =>
{
    endpoints.MapHealthChecks("/context/health");
});

接下來咱們來訪問上述健康檢查路由節點看看路由

 

咱們看到如上將返回Healthy字符串,說明一切健康(正常),當咱們注入針對EF Core的診斷包後,究竟是根據什麼來判斷是否健康或正常呢,不用講,咱們都能猜到,那就是對所配置數據庫的訪問字符串

 

反之,當非健康狀態時,此時頁面和控制檯都將返回對應信息,以下:it

總結

💡 EF Core健康檢查出現於 2.2+(包含2.2)io

💡 安裝診斷包:Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore

💡 在添加健康檢查擴展方法基礎上,添加針對上下文健康檢查擴展方法AddDbContextCheck

相關文章
相關標籤/搜索