0

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

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

谢谢,

乔什

4

3 回答 3

0

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

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

于 2019-05-15T20:38:02.910 回答
0

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

Azure 应用服务混合

如果您要提取少量数据,Azure App Service 混合连接非常适合。

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

  1. Azure 站点到站点 VPN

  2. Azure SQL 数据同步

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

于 2019-05-16T06:32:56.673 回答
0

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

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

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

于 2019-06-13T20:43:35.827 回答