- 在启动应用程序前创建数据库故障转移伙伴列表,以便在发生故障转移时,EF Core应用程序可用于自动检测最新的可用伙伴。
示例代码:
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("myConnectionString"),
sqlServerOptionsAction: sqlOptions =>
{
sqlOptions.EnableRetryOnFailure(maxRetryCount: 5, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
sqlOptions.MigrationsAssembly("MyMigrationAssemblyNameHere");
sqlOptions.ExecuteSqlCommand("ALTER DATABASE [MyDatabaseNameHere] SET PARTNER partner_server_partner_db2");
}));
- 添加数据库连接重试机制,以确保应用程序可以在数据库故障转移后自动重试连接。
示例代码:
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("myConnectionString"),
sqlServerOptionsAction: sqlOptions => {
sqlOptions.EnableRetryOnFailure(
maxRetryCount: 10,
maxRetryDelay: TimeSpan.FromSeconds(30),
errorNumbersToAdd: null);
}));
通过以上两种方式,可以解决AWS Fargate上.NET Core应用程序在数据库故障转移后无法连接到故障转移伙伴的问题。