我在AWS上创建了一个虚拟机,并且我还创建了一个SQL Server Express实例。我现在想要虚拟机上的.NET应用程序与数据库通信。
我可以使用详细信息通过笔记本电脑上的SSMS连接到实例/数据库:
Server name: amazontest.xxxx.eu-west-1.rds.amazonaws.com
Login: Administrator
Password: xxxx
所以实例是up&跑步,并且可公开访问。
在我的.net应用程序的web.config中,我有以下连接字符串:
<connectionStrings>
<add name="DefaultConnection"
connectionString="Server=amazontest.xxxx.rds.amazonaws.com,1433;Database=amazontest;User Id=Administrator;Password=xxxx;MultipleActiveResultSets=true;"
providerName="System.Data.SqlClient" />
</connectionStrings>
但是这一直给我一个错误:A network-related or instance-specific error occurred while establishing a connection to SQL Server.
我不知道还有什么可以尝试的,如果外部连接有效...
答案 0 :(得分:0)
所以答案在Security Groups
。
创建RDS时,它会为安全组分配入站流量的当前 IP地址,从而为什么SSMS可以在我的笔记本电脑上运行。我必须编辑它创建的安全组,为虚拟机的专用IP 添加Inbound
规则。
即。在VM实例上,找到Private IP
地址,并将其作为Inbound
规则添加到安全组,类型为:Custom TCP Rule
,端口范围:1433
,来源: X.X.X.X/32
答案 1 :(得分:0)
是的,应用程序无法与数据库建立连接,因为端口(1433)未打开或可能因少数IP而打开,因此您需要将应用服务器IP列入白名单RDS实例的安全组。