从Azure Web应用程序连接到内部SQL数据库

时间:2019-05-15 20:06:04

标签: sql-server azure vpn azure-webapps

我正在尝试构建一个与内部网络中的服务器上托管的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。

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

谢谢

乔什

3 个答案:

答案 0 :(得分:0)

您可以利用Azure混合连接,这是App服务的一项功能。在App Service中,混合连接可用于访问其他网络中的应用程序资源。它提供从您的应用程序到应用程序终结点的访问,并使用Azure中继服务连接到内部部署。 请查看下面的链接以获取更多详细信息:

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

答案 1 :(得分:0)

第一个选择是查看azure应用程序服务混合连接,但要执行此操作,您应该拥有Windows Server 2012或更高版本。

Azure App Service Hybrid

如果要提取少量数据,Azure App Service混合连接很好。

如果要提取大量数据或SQL Server版本低于server 2012,则有两个选择:

  1. Azure Site to Site VPN

  2. Azure SQL Data Sync

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

答案 2 :(得分:0)

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

在调试方面非常有用的是Azure中的Kudu控制台,在“高级工具->控制台”下。在那里,您可以从托管应用程序的计算机上运行命令,例如ping或以下命令:

sqlcmd -S tcp:服务器名,1433 -U用户名-d数据库名-P密码-q“ SELECT * FROM表名”

相关问题