在筆者的 ASP.NET Core 專案中是使用 Entity Framework Core 來和資料庫溝通,在 ASP.NET Core 一啟動時會檢查資料庫中是否包含預設資料,沒有的話就會自動新增。
但是如果在啟動時資料庫連接失敗,ASP.NET Core 就會直接拋出例外,不會繼續執行。
後來筆者發現可以使用 EnableRetryOnFailure 來設定自動重新嘗試連接資料庫的規則,不限於 SQL Server 資料庫,其他資料庫也可以使用,非常方便。
程式碼示範:
參考資料:
Microsoft.Learn - Connection Resiliency
但是如果在啟動時資料庫連接失敗,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
感謝教學~
回覆刪除