我在连接到 Azure 上已部署的数据库时遇到了困难。我是 Azure 新手,目前使用的是试用许可证。我有一个使用 Visual Studio 2015 在 ASP.NETCore C# 中创建的 Web 应用程序(仍处于调试阶段)。它已经部署并正在运行。我已将数据库附加到它,可以毫无问题地保存数据。
但是,我无法连接到它。这意味着我无法修改它,也无法应用迁移。我需要从 Azure 门户中删除它并创建一个新的,然后当我从 VS 发布我的应用程序时,一切正常。以前,当我在本地服务器上测试我的应用程序时,我通过控制台应用迁移。在 appsettings 中设置适当的连接字符串。现在,当我从 Azure 复制连接字符串时,它会给我一个错误。与 SSMS 中的错误相同打开图片 我无法 ping 通它,也无法通过 telnet 访问。我使用 tracert 但它在这里停止了打开图片。我在 Azure 中设置了防火墙以通过我的 IP 地址以及最大可能范围。我的端口 1433 经过测试,并且根据 grc.com 存在连接。
这让我很恼火,因为我甚至无法在 SSMS 中打开它。这怎么可能?有人知道吗,我还能做什么?也许我做错了什么,在 Azure 的官方教程中它看起来很简单,但对我来说却不起作用。我很高兴看到任何想法。
答案1
根据您的描述,您可以按照以下方式检查:
1. 在 Azure VM 上登录 SQL Server。
请确保您可以在服务器虚拟机上登录。
2.检查虚拟机的 NSG 入站规则。 如果您希望能够通过 Internet 连接到 SQL Server,则必须在 NSG 上为 SQL Server 实例列出的端口配置入站规则。
注意:如果您在子网上创建了网络安全组,则必须在子网和虚拟机的网络安全组上打开端口 1433。
3.检查Windows防火墙中的端口。
请确保端口 1433 是要访问的端口。
Azure 提供了文章关于如何连接到在 Azure VM 上运行的 SQL Server 实例,也许您可以按照文章逐步检查。
答案2
我仍然无法从 Visual Studio 和 SSMS 中的 SQL Server 对象资源管理器访问我的 Azure 数据库,但实际上我不需要这样做。我想要的是能够将迁移应用于我已经部署的数据库。我无法再在控制台中执行此操作,因为我仍然无法连接到它,但是我可以将迁移添加到我的项目 dotnet ef migrations add [迁移名称],然后当我通过 Visual Studio 发布我的项目时,我需要选中设置中的“在发布时应用此迁移”复选框。因此,当我第一次访问我的 webapp 时,迁移就应用了。
我花了 3 天时间思考如何建立正确的连接以便将迁移应用到我的应用程序,而我需要做的就是勾选一个框......