sql-server - 与服务器成功建立连接,但在登录前握手期间发生错误。(提供者 :TCP Provider, 错误:35)

标签 sql-server asp.net-core kubernetes

我在 .Net Core 中内置了一个后台服务,它执行 SQL Server 数据库过程,如下所示:

public int ExecuteProcedure(string connectionString, string sql, Dictionary<string, object> parameters = null)
{
        var response = -99;
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            // Create a SqlCommand, and identify it as a stored procedure.
            using (SqlCommand sqlCommand = new SqlCommand(sql, connection))
            {
                sqlCommand.CommandType = CommandType.StoredProcedure;
                if(parameters != null)
                    SetParameters(sqlCommand, parameters);
                response = sqlCommand.ExecuteNonQuery();
            }
            connection.Close();
        }

        return response;
}

当我在本地计算机上运行 bakcgroundservice 时,它运行没有问题,但是当我使用 docker 和 kubernetes 时,出现以下错误:

A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught)

我在多个地方进行了咨询,但我找到的所有答案都是关于重新启动 Visual Studio 或 IIS,但由于应用程序位于 kubernetes 中,因此不适用于我的情况

非常感谢您的帮助。

最佳答案

构建 Docker 容器时使用的镜像会出现此错误。

我正在使用图像:mcr.microsoft.com/dotnet/core/runtime:3.1-buster-slim,但当我将其更改为:mcr.microsoft.com/dotnet/core/runtime:3.1-bionic 工作正常。

根据我一直在咨询的内容,似乎让我失败的镜像的 TLS 版本与 SqlServer 的成功连接不兼容

关于sql-server - 与服务器成功建立连接,但在登录前握手期间发生错误。(提供者 :TCP Provider, 错误:35),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62942247/

相关文章:

sql-server - 导入到 SQL Server 时忽略 Excel 文件中的列

kubernetes - 根据 pod 标签动态更新 prometheus scrape 配置

kubernetes - 环境变量数组

node.js - 使用 Docker 通过 kubernetes 部署 React 应用程序

sql-server - SSDT 如何在不丢失自定义客户端数据库对象的情况下使用 : Deploy . dacpac?

sql-server - 使用 VNET 进行 Azure 数据库部署管道部署

c# - SqlDataReader 返回 x 行,但 SQL 查询返回 y 行

entity-framework-6 - 在 asp.net-core mvc 应用程序中创建新的 ApiController 时发生 PathTooLongException

c# - 用于集成测试的 ASPNet.Core 托管环境?

c# - 在 MVC 程序中调用 Web API