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

Sql server 无法通过托管在另一个azure VM上的web应用连接到sql server VM,sql-server,windows,azure,virtual-machine,Sql Server,Windows,Azure,Virtual Machine,我无法通过托管在另一个azure VM上的web应用程序连接到托管SQL server的windows azure虚拟机。我在登录页面上看到一个应用程序错误,上面写着“对象引用未设置为对象的实例”。我无法连接到数据库。要设置在VM上运行的SQL server与任何其他应用程序之间的连接,必须确保SQL server和VM本身都有连接设置: 虚拟机: 虚拟机有防火墙,防火墙阻止除您在防火墙中定义的规则之外的任何虚拟机访问,如果您希望访问虚拟机,必须打开防火墙中的相关端口。(顺便说一句,ping服务

我无法通过托管在另一个azure VM上的web应用程序连接到托管SQL server的windows azure虚拟机。我在登录页面上看到一个应用程序错误,上面写着“对象引用未设置为对象的实例”。我无法连接到数据库。

要设置在VM上运行的SQL server与任何其他应用程序之间的连接,必须确保SQL server和VM本身都有连接设置:

虚拟机:

虚拟机有防火墙,防火墙阻止除您在防火墙中定义的规则之外的任何虚拟机访问,如果您希望访问虚拟机,必须打开防火墙中的相关端口。(顺便说一句,ping服务器在防火墙上启用ICMP…)

记下: -如果您希望在专用网络内打开端口,则该操作由防火墙完成,但如果您希望在专用网络外打开端口,请确保您需要在azure门户中设置端点,并通过该端口与计算机关联

  • 如果您希望仅为相关IP打开端口,我会告诉您azure端点(除非您由azure power shell设置)是在azure负载平衡之后定义的,并且对VM的访问将来自负载平衡器IP。。。克服这一问题的一种方法是使用azure提供的新功能—端点acl(我认为它的预览版对此并不十分清楚),或者打开负载均衡器ip
关于SQL server, 尝试连接到sql server时,发生以下通信: -应用程序正在向服务器发送UDP消息,并询问应在哪个端口访问服务器,该UDP消息在端口1434中发送-因此您也应授予该端口的访问权限, -如果在sql server设置中启用了动态端口,则服务器可能会让sql server侦听该udp 1434并返回一个未使用的tcp端口,然后它将侦听来自该应用程序的通信。 -如果禁用动态端口并设置为sql通信的默认端口(tcp 1433),则可以使用udp 1434从计算机上打开该端口,通信将正常工作。如果这不是安全问题,则可以允许所有端口并启用动态端口

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


希望我能帮忙

请提供更多信息,您能从另一台机器进行udl检查以验证连接吗?虚拟机是否在同一个专用网络中?你能把他们分开吗?关于该网络的sql的TCP端口是否已打开?两个VM都位于不同的专用网络中。sql虚拟机的TCP端口已打开,但我无法从web应用虚拟机ping sql虚拟机。我将给出一个简短的回答,希望这将有助于感谢您的详细解释。我一定会尝试这些设置并让你知道。