sql-server - 从 Azure Web 应用程序连接到内部 SQL 数据库
问题描述
我正在尝试构建一个与托管在我们内部网络中的服务器上的 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。
如果您需要任何其他信息,请告诉我。
谢谢,
乔什
解决方案
您可以利用 Azure 混合连接,这是应用服务的一项功能。在应用服务中,混合连接可用于访问其他网络中的应用程序资源。它提供从应用程序到应用程序终结点的访问权限,并使用 Azure 中继服务连接到本地。查看以下链接了解更多详情:
https://docs.microsoft.com/en-us/azure/app-service/app-service-hybrid-connections
推荐阅读
- reactjs - 如何使用 webpack 和 typescript 将 npm 模块 css 导入为全局?
- oop - 数值模拟的函数式编程
- javascript - 在基于 XML 的 Web 应用程序中包含导致 XML 解析错误的库
- javascript - 获取对象数组内数组的累积长度
- python - Django 在模板中向特定用户显示最新的电子邮件
- python - 在 python 中,如何为其中一列中列表的每个元素创建单独的行?
- r - 如果在 purrr 语言中不存在列,则添加列
- c++11 - 如果 C++ 中有引用参数,如何复制函数的参数?
- python - 为什么 pandas 会删除重复数据?
- sql - 查询一个或多个列具有值的多列