我正在尝试从 VPC 中的 AWS Lambda 连接到我的 SQL Server RDS 实例(使用 .net core)。
当我尝试运行 Lambda 函数时,它返回:
"errorType": "SqlException", "errorMessage": "Connection Timeout Expired。在登录后阶段超时时间已过。连接可能在等待服务器完成登录过程并响应时超时;或者它可能有尝试创建多个活动连接时超时。尝试连接到此服务器所用的持续时间为 - [登录前]初始化=781;握手=1957;[登录]初始化=40;身份验证=122;[登录后] ] 完成=12219;",
我已经配置了以下内容:
连接字符串看起来像这样(使用 Dapper 作为我的 ORM)
string dbconnstr = @"server=vpc100-db.xyz.us-west-1.rds.amazonaws.com;database=dbMyDb;user id=sa;password=mypwd;";
知道我错过了什么吗?
解决了。数据库引擎版本是问题所在。
事实证明,这不是 Lambda 或 VPC 和 RDS 的权限问题。无法从 Lambda(通过 c# .net core)连接到 RDS 是数据库版本!我正在连接到一个 RDS MS SQL 2008 R2,它使用本地代码而不是 Lambda。当我将 RDS 目标数据库更改为 MS SQL 2016 时,它起作用了!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句