我已经按照这篇文章来帮助在Azure VM上设置和配置SQL Server,并且花了很多时间试图弄清楚为什么我无法从运行EC2 VM的ASP.NET Web应用程序进行连接。 / p>
http://azure.microsoft.com/en-us/documentation/articles/virtual-machines-provision-sql-server/#SSMS
我尝试过不同的方式调整连接字符串,当然会得到不同的消息。这是我关注的最新内容。
'请求的名称有效,但未找到所请求类型的数据'
这是我的连接字符串:
Server=tcp:XXXXXX.cloudapp.net;User ID=XXX;Password=XXXX;Database=XXX;trusted_connection=false; integrated security=false; encrypt=true;TrustServerCertificate=True
端口1433在服务器上打开,我可以通过我的本地SQL Server连接而没有任何问题。想法为什么我无法从网络应用程序连接?我通过nslookup验证了域访问。
答案 0 :(得分:0)
您遵循的说明指定公共VM端点应具有端口57500(公开公开)并在内部映射到1433。由于您从AWS EC2连接,它肯定会通过Internet连接,因此使用您的公共VM TCP端点,因此您需要在连接字符串中明确指定端口:
Server=XXXXXX.cloudapp.net,57500;User ID=XXX;Password=XXXX;Database=XXX;trusted_connection=false; integrated security=false; encrypt=true;TrustServerCertificate=True
(注意语法涉及逗号而不是连接字符串中的冒号端口分隔符。)
您所遵循的说明文章底部的连接字符串示例未指定您需要为实例指定端口。
此外,值得在Sql Server配置管理器中仔细检查服务器实例是否具有TCP / IP的固定端口并且启用了TCP / IP;默认情况下,命名实例将使用动态端口,这些端口难以在防火墙后面使用。这里概括了一般的Sql Server端口行为(1433 vs 1434等):http://msdn.microsoft.com/en-us/library/ms175483(v=sql.105).aspx