无法通过托管在另一个azure VM上的Web应用程序连接到sql server VM

时间:2013-06-11 12:15:57

标签: sql-server windows azure virtual-machine

我无法通过托管在另一台Azure上的Web应用程序连接到托管SQL服务器的Windows Azure虚拟机。我在登录页面本身收到一个应用程序错误,说“对象引用没有设置为对象的实例”。我无法连接到数据库。

1 个答案:

答案 0 :(得分:1)

为了在VM上运行的SQL服务器与任何其他应用程序之间设置连接,您必须确保SQL服务器和它自己的VM都有连接性设置:

VM:

除了您在防火墙中定义的规则外,vm还有防火墙阻止对VM的任何访问,如果您希望访问虚拟机,则必须打开防火墙中的相关端口。 (BTW ping服务器在防火墙上启用ICMP ......)

做笔记: - 如果您希望在私有网络内打开一个由防火墙完成的端口,但如果您希望转到私有网络外,请确保您需要在天蓝色门户中设置端点并通过该端口与该机器相关。

  • 如果您只想打开相关IP的端口,我会告诉您天蓝色端点(除非您通过天蓝色电源外壳设置它们)是在天蓝色负载平衡后定义的,并且对VM的访问将来自负载平衡器IP ...一种克服这个问题的方法是使用azure给出的新功能 - 端点acl(我认为它在预览中已经很清楚了)或打开负载均衡器ip。

关于SQL服务器, 尝试连接到SQL Server时,发生以下通信: - 应用程序正在向服务器发送UDP消息并询问它应该访问服务器的端口,该udp消息是在端口1434中发送的 - 所以您也应该授予对该端口的访问权限, - 如果在sql server设置中启用了动态端口,则服务器可能会在sql服务器上侦听该udp 1434并返回一个未使用的tcp端口,该端口将侦听来自该应用程序的通信。 - 如果禁用动态端口并设置为sql通信的默认端口(tcp 1433),那么您将无法从计算机上使用udp 1434打开该端口,并且通信将起作用,如果这不是安全问题您可以允许所有端口并启用动态端口。

无论如何 - 您需要结合所有这些与您的服务器结构相关的设置来启用通信。

希望我帮助