【问题标题】:Connect to Internal SQL database from Azure Web Application从 Azure Web 应用程序连接到内部 SQL 数据库
【发布时间】:2019-10-03 00:59:59
【问题描述】:

我正在尝试构建一个与托管在我们内部网络中的服务器上的 SQL 数据库通信的 Web 服务。该服务由 Azure 作为 Web 应用程序托管。有没有这样做的好方法?我是否必须使用 Azure Sql 数据库,如果需要,有没有办法让 Azure 数据库充当我们内部数据库的代理?

已经有规则允许连接到我们的数据库服务器上的端口,所以我认为这不是问题所在。我看到很多关于连接到 Azure 托管的 sql 数据库的问题,但没有看到关于将 Azure Web 应用程序连接到其他类型的数据库的问题。

当我尝试调用存储过程(通过生成的实体框架代码)时出现错误,如下:

发生错误:System.Data.Entity.Core.EntityException:底层提供程序在打开时失败。 ---> System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。

我们的数据库配置为允许远程连接,所以我猜 Web 应用程序很难连接到我们的 vpn。

如果您需要任何其他信息,请告诉我。

谢谢,

乔什

【问题讨论】:

标签: sql-server azure vpn azure-webapps


【解决方案1】:

我们最终将应用程序添加到允许连接到我们的本地服务器的 Azure 虚拟网络。剩下的困难是由于打开了错误的端口号。

Azure 中的 Kudu 控制台对调试非常有帮助,位于高级工具 -> 控制台下。在那里,您可以从托管您的应用程序的机器上运行命令,例如 ping 或以下命令:

sqlcmd -S tcp:servername,1433 -U 用户名 -d 数据库名 -P 密码 -q "SELECT * FROM tablename"

【讨论】:

    【解决方案2】:

    第一个选项是查看 azure app service 混合连接,但要做到这一点,您应该拥有 Windows Server 2012 或更高版本。

    Azure App Service Hybrid

    如果您要提取少量数据,Azure 应用服务混合连接非常适合。

    如果您要提取大量数据或您的 SQL 服务器版本低于 server 2012,您有两种选择:

    1. Azure Site to Site VPN

    2. Azure SQL Data Sync

    Azure SQL DB Sync 是 Azure SQL 数据库上提供的一项功能。您可以在 azure 上创建 Azure SQL 数据库并将本地 SQL 数据库或 SQL 数据库表同步到 Azure SQL 数据库,并且可以将应用程序连接到 Azure SQL 数据库,而不是连接到本地数据库服务器。这将提高您的应用程序的性能。

    【讨论】:

      【解决方案3】:

      您可以利用 Azure 混合连接,这是应用服务的一项功能。在应用服务中,混合连接可用于访问其他网络中的应用程序资源。它提供从应用程序到应用程序终结点的访问权限,并使用 Azure 中继服务连接到本地。 查看以下链接了解更多详情:

      https://docs.microsoft.com/en-us/azure/app-service/app-service-hybrid-connections

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-19
        • 2017-03-05
        • 1970-01-01
        • 2020-03-23
        • 2021-07-24
        • 2021-12-06
        • 1970-01-01
        • 2019-04-13
        相关资源
        最近更新 更多