c# - Sqlconnection 仍然需要 ssl 但 "encrypt=false"

标签 c# sql sql-server ssl

我有一个用 C#(框架 4.6)编写的应用程序,它使用 System.Data.SqlClient 与 SQL Server 2014 通信。此应用程序不使用 SSL 连接到 SQL。

与 SQL Server 的连接失败并出现此错误:

a connection was established but ... protocol error ... opening session (SSL provider error 0)

在服务器上,我观察到事件:Schannel 错误 36874 和 36888(从远程客户端应用程序接收到 TLS1.2 连接请求,但服务器不支持客户端应用程序支持的密码套件。 )

我试图在连接字符串中强制使用 encrypt=false 来禁用任何 SSL 选项,但这并不能解决问题。

此错误不会发生在同一网络的所有计算机上。

预先感谢您的帮助。

亲切的问候,

家伙

最佳答案

我们已经找到了这个问题的解决方案。我们需要在注册表中添加新闻键。

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000001
"Enabled"=dword:00000000

重启电脑后,问题解决了,但我们不明白为什么有些电脑会连接tls 1.2

关于c# - Sqlconnection 仍然需要 ssl 但 "encrypt=false",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40890628/

相关文章:

c# - 将空数组序列化和反序列化为字典/对象

c# - 我在我的 web api 2 中使用 DataContractJsonSerializer 还是 Json.net

SQL Server - 按所有组返回的记录数进行聚合

c# - 某些项目无法加载 PDB 文件

c# - 了解python中的阶乘函数

php - 自动生成 $_POST 变量

sql - Oracle 中的查询错误

c# - 在多线程环境中的 SQL Server 中执行 INSERT 后获取 Id?

SQL Server 查询区分大小写

sql - Powershell - 用户映射 SQL Server 2012