我在.net core 3.1中有一个应用程序,并且正在使用MySql。要连接到MySql,我正在使用Pomelo.EntityFrameworkCore.MySql nuget。
我的.net核心应用程序已部署为AWS ECS上的docker容器,我正在使用Aurora MySql RDS存储数据。我已授予对Aurora MySql的“公共访问”访问权限,并且可以使用MySql工作台以及使用localhost的.net核心应用程序连接到数据库。但是,当我部署该应用程序并尝试执行任何数据库操作时,它就会开始抛出异常:
引发了一个异常,该异常可能是由于瞬时故障引起的。考虑通过向“ UseMySql”调用中添加“ EnableRetryOnFailure()”来启用瞬态错误恢复能力。
然后我添加了这样的重试模式:
services.AddDbContextPool<DataContext>(options =>
options.UseMySql(Configuration.GetConnectionString("DefaultConnection"), builder =>
{
builder.EnableRetryOnFailure(5, TimeSpan.FromSeconds(5), null);
}
);
和我的连接字符串是这样的:
"DefaultConnection": "Server=db-cluster-1-instance-1.cqb2fsjwx78p.us-east-2.rds.amazonaws.com;Database=dbName;User ID=admin;Password=password;port=3306"
添加重试模式后。我收到此错误:
“使用'MySqlRetryingExecutionStrategy'执行数据库操作时,超过最大重试次数(5)。有关最新失败,请参阅内部异常。”
所以我怀疑,这是另外一回事。我在这里做错了什么?否则在aws端可能出了点问题
所以问题与我拉的docker映像有关。我正在使用mcr.microsoft.com/dotnet/core/sdk:3.1
。将其更改为mcr.microsoft.com/dotnet/core/sdk:3.1-bionic
有效。https://github.com/dotnet/SqlClient/issues/222
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句