关于.NET5 Ubuntu Docker连接SqlServer 2008R2报错 provider: TCP Provider, error: 35 - An internal exception

本文讲述了在.Net5环境下遇到的预登录握手错误,并详细解释了原因——不支持特定的配置。解决步骤包括调整CipherString和MinProtocol,升级SQLServer SP3。还提及了SqlClient在Linux SP1上的连接限制,需安装SP3 Service Pack。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错:

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)

原因:.net5不支持CipherString = DEFAULT@SECLEVEL=2的配置。
将CipherString = DEFAULT@SECLEVEL=1。改完后,重启容器。
如问题任在,则将 MinProtocol = TLSv1.0 更改为MinProtocol = TLSv1
这里去掉了点以及字符0,再重启容器发现就OK了。
也可以通过docker copy命令,将修改后的文件,拷贝到容器中,替换。
后续的坑
报错:

Connection Timeout Expired.  The timeout period elapsed during the post-login phase.  The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections.  The duration spent while attempting to connect to this server was - [Pre-Login] initialization=132; handshake=1215; [Login] initialization=24; authentication=54; [Post-Login] complete=13126;

SqlClient现在不支持Linux的SP1连接。Sqlserver 2008 R2需要升级安装SP3 Service Pack
下载安装Microsoft® SQL Server® 2008 R2 Service Pack 3
至此问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值