Entity Framework Core 連線失敗自動重試

在筆者的 ASP.NET Core 專案中是使用 Entity Framework Core 來和資料庫溝通,在 ASP.NET Core 一啟動時會檢查資料庫中是否包含預設資料,沒有的話就會自動新增。
但是如果在啟動時資料庫連接失敗,ASP.NET Core 就會直接拋出例外,不會繼續執行。

後來筆者發現可以使用 EnableRetryOnFailure 來設定自動重新嘗試連接資料庫的規則,不限於 SQL Server 資料庫,其他資料庫也可以使用,非常方便。

程式碼示範:
    
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection");
builder.Services.AddDbContext<ApplicationDbContext>((serviceProvider, options) =>
{
    options.UseSqlServer(connectionString, optionsBuilder =>
    {
        optionsBuilder.EnableRetryOnFailure(
            maxRetryCount: 5,
            maxRetryDelay: TimeSpan.FromSeconds(30),
            errorNumbersToAdd: null
        );
    });
});
    



參考資料:
Microsoft.Learn - Connection Resiliency

留言

張貼留言

如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com