Azure 函数 - 本地数据库的连接字符串

Azure Function - Connection String to On-Premises Database

我为 Azure 函数设置了 Azure 混合连接,以便连接到本地 SQL 服务器数据库。但是,我将以下内容添加为连接字符串;我在尝试连接时收到以下错误。此处有关如何格式化连接字符串以使用混合连接的指导将不胜感激。我在下面使用的错误消息、代码和连接字符串。

Azure 函数使用的是 .NET Framework,我使用的是 SQL Server 2019

A connection was successfully established with the server, but then an error occurred during the login process (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)

Azure 函数代码

using System.Linq
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System.Data.SqlClient;

namespace AzureHybridConnectionTest
{
   public static class TestOnPremConnection
{
    [FunctionName("TestHybridConnection")]
    public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage req, TraceWriter log)
    {
        log.Info("Testing Connection to On Premise SQL Database.");

        string connectionString = System.Environment.GetEnvironmentVariable("HybridConnectionString");
        log.Info(connectionString);

        using(SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();
            log.Info($"SQL Connection open to database {conn.Database}");
        }

        log.Info("SQL Connection closed");

        return req.CreateResponse(HttpStatusCode.OK, "Success!");

       }
     }
   }

连接字符串

Server=tcp:[hybrid connection endpoint];Initial Catalog=[db name];Persist Security Info=False;User ID=[user];Password=[password];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=30;

谢谢Anand Sowmithiran。将您的建议作为答案发布,以便对面临类似问题的其他社区成员有所帮助。

根据此 doc 如果您使用的是本地 sql 服务器,则可能存在端口问题,例如网络不允许传入连接。

混合连接可以将 Azure App Service Web 应用程序连接到使用静态 TCP 端口的本地资源。支持的资源包括 Microsoft SQL 服务器、MySQL、HTTP Web API、移动服务和大多数自定义 Web 服务。

有关详细信息,请查看 and also check the MSSQL 18456 错误日志。