Azure 混合连接管理器不工作
Azure hybrid connection Manager does not work
要求
我有一个 On-Premise SQL Server 和一个 Azure webApp Service 需要相互通信。我在与 SQL 服务器位于同一局域网中的另一台计算机上安装了混合连接管理器。我们将这台计算机称为 连接 PC。
工作部分
- 安装和配置很简单,混合连接的状态显示为已连接。
- 在本地主机上测试了 WebApp,它工作正常。这意味着 asp.net 代码
没有问题
- 连接PC上的SSMS可以访问查询SQL数据库
- 我在连接的 PC 本身上安装了一个测试 SQL 数据库,并使用 WebApp 与测试数据库通信,它工作正常。
问题
在本地主机上测试正常后,我将 ASP.Net WebApp 发布到 Azure,它给出了以下错误:
建立与 SQL 服务器的连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确并且 SQL 服务器配置为允许远程连接。 (提供商:命名管道提供商,错误:40 - 无法打开与 SQL 服务器的连接)
故障排除尝试
- 这是否意味着混合连接管理器必须安装在运行 SQL 服务器的同一台计算机上?
- 我曾尝试在 SQL 服务器上安装 HCM,但它说它不能与 Win2008R2 一起使用。连接PC上有win2012。所以它可以有HCM。
我只是没有时间将 SQL 服务器迁移到另一台服务器。所以我希望 HCM 不必在 SQL 服务器上。
连接字符串
在我的webapp中,连接字符串如下。
connectionString="metadata=res:///ScaleDataModel.csdl|res:///ScaleDataModel.ssdl|res://*/ScaleDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=WIN2008R2\DataPlus;initial catalog=DataPlus;persist security info=True;user id=test;password=testpass;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient"
由于您有混合连接,因此您的连接字符串应将混合连接的端点名称作为数据源。尝试更换它。
混合连接通过 TCP 端口进行通信,因此您需要在连接字符串中指定侦听静态端口,例如:
数据源=服务器名称:端口;
另外 here 是一篇非常详细的文章,介绍了您在使用混合连接时可能遇到的所有问题。
希望对您有所帮助。
要求
我有一个 On-Premise SQL Server 和一个 Azure webApp Service 需要相互通信。我在与 SQL 服务器位于同一局域网中的另一台计算机上安装了混合连接管理器。我们将这台计算机称为 连接 PC。
工作部分
- 安装和配置很简单,混合连接的状态显示为已连接。
- 在本地主机上测试了 WebApp,它工作正常。这意味着 asp.net 代码 没有问题
- 连接PC上的SSMS可以访问查询SQL数据库
- 我在连接的 PC 本身上安装了一个测试 SQL 数据库,并使用 WebApp 与测试数据库通信,它工作正常。
问题
在本地主机上测试正常后,我将 ASP.Net WebApp 发布到 Azure,它给出了以下错误:
建立与 SQL 服务器的连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确并且 SQL 服务器配置为允许远程连接。 (提供商:命名管道提供商,错误:40 - 无法打开与 SQL 服务器的连接)
故障排除尝试
- 这是否意味着混合连接管理器必须安装在运行 SQL 服务器的同一台计算机上?
- 我曾尝试在 SQL 服务器上安装 HCM,但它说它不能与 Win2008R2 一起使用。连接PC上有win2012。所以它可以有HCM。 我只是没有时间将 SQL 服务器迁移到另一台服务器。所以我希望 HCM 不必在 SQL 服务器上。
连接字符串
在我的webapp中,连接字符串如下。
connectionString="metadata=res:///ScaleDataModel.csdl|res:///ScaleDataModel.ssdl|res://*/ScaleDataModel.msl;provider=System.Data.SqlClient;provider connection string="data source=WIN2008R2\DataPlus;initial catalog=DataPlus;persist security info=True;user id=test;password=testpass;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient"
由于您有混合连接,因此您的连接字符串应将混合连接的端点名称作为数据源。尝试更换它。
混合连接通过 TCP 端口进行通信,因此您需要在连接字符串中指定侦听静态端口,例如:
数据源=服务器名称:端口;
另外 here 是一篇非常详细的文章,介绍了您在使用混合连接时可能遇到的所有问题。
希望对您有所帮助。