c# - 从 Azure Web 应用程序连接到 On Prem SQL 服务器
问题描述
我在 prim 有 .Net 应用程序。我想在 Azure 上托管它,但不想移动数据库。我在 Azure 上发布了应用程序,但它无法连接到 prim 数据库。
SQL 服务器在专用网络中。
出于 POC 目的,我正在使用 MSDN 订阅。我面临以下错误,
建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
谢谢, 乌梅什
解决方案
由于您的本地数据库位于您的私有本地网络中,Azure 服务找不到它,您可以为本地数据库公开一个公共 IP,或者使用 Azure Web 应用服务VNet与Azure VPN 网关集成来安全地访问Azure VNet 或本地网络中的资源。
另一种推荐的方法是使用Azure App Service Hybrid Connections。为此,您需要在您的应用程序中添加和创建混合连接。您将在数据库服务器或与本地数据库位于同一网络中的另一台服务器中下载并安装代理(混合连接管理器)。
主要步骤如下:
- 您在应用服务或 Web 应用上配置逻辑连接。
- 一个小型代理,混合连接管理器,下载并安装在您需要与之通信的远程网络(本地或任何地方)中运行的 Windows Server(2012 或更高版本)上。
- 您在混合连接管理器中登录到您的 Azure 订阅,然后在您的应用服务中选择逻辑连接。
- 混合连接管理器将向 Azure 中的应用服务发起安全隧道输出 (TCP 80/443)。
- 您的应用服务现在可以通过混合连接管理器与远程网络中基于 TCP 的服务(在 Windows 或 Linux 上)进行通信。
您可以获得有关如何将 Azure Web 应用程序连接到本地的更多详细信息。
推荐阅读
- html - CSS - 动态文本旁边的滑块对齐
- reactjs - 为什么父组件可以用 setState 改变 Input.value?输入没有自己的状态吗?
- amazon-web-services - 如何使用 AWS-Glue 很好地抓取包含结构类型数据的 csv 文件?
- mysql - 如何使用 Redshift 提取 JSON 数组中的所有元素?
- mysql - 替代索引
- corda - Corda 中状态的 VaultCustomQueryCriteria
- react-native - 在搜索栏(react-native-elements)中搜索某些内容后,在 react native 中发送 API 请求
- excel - Ado 通过 ODBC 为 adNumeric(21,6) 返回错误的值
- javascript - 如何在茉莉花单元测试angular6中模拟“window.location.origin”
- swisscomdev - Swisscom 公共应用云的 IP 地址范围