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 错误日志。
我为 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 服务。
有关详细信息,请查看