gpt4 book ai didi

sql-server - .NET 5 + Microsoft.Data.SqlClient - 从传输流接收到意外的 EOF 或 0 字节

转载 作者:行者123 更新时间:2023-12-04 22:36:07 24 4
gpt4 key购买 nike

我将我的应用程序从 .NET Core 3.1 更新到了 .NET 5,现在我无法打开与我的 SQL Server 数据库的连接。最里面的异常错误信息是

Received an unexpected EOF or 0 bytes from the transport stream.


顶级错误消息是

A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)


除了 .NET 5 的版本,我只更新了基础镜像,来自 3.1-bionic5.0.3-focal-amd64有什么我也应该做的吗?
编辑 1:
我找到了 this article这似乎与我正在经历的事情密切相关。但是在更改了我的 CipherString 之后对于建议的值,我对错误没有任何改变。一样。也许有一个 CipherString = ANY ?

最佳答案

NOTE

The Microsoft-recommended action is to improve security by upgrading your SQL Servers to support TLS v1.2


引用:
  • SqlClient troubleshooting guide
  • How to enable TLS 1.2
  • KB3135244 - TLS 1.2 support for Microsoft SQL Server

  • 但是,如果您无法升级您的 SQL Server 以支持 TLS v1.2,您可以通过编辑 /etc/ssl/openssl.cnf 来影响可用的密码套件以实现客户端协议(protocol)的降级。文件。
    因为 Alpine 容器是裸机,所以首先安装你最喜欢的编辑器,例如:
    apt-get update
    apt-get install nano
    编辑您的 /etc/ssl/openssl.cnf将以下行放在文件的开头:
    openssl_conf = default_conf
    以及文件末尾的以下几行:
    ########## Override default settings to enable TLS v1.0 and 1.1 ##########

    [ default_conf ]
    ssl_conf = ssl_sect

    [ssl_sect]
    system_default = system_default_sect

    [system_default_sect]
    CipherString = DEFAULT:@SECLEVEL=1
    #It really should be:
    #CipherString = DEFAULT:@SECLEVEL=2
    这将影响容器中所有启用 openssl 的进程。您可以使用以下命令测试更改前后的连接性:
    # Test TLS v1.0 connectivity
    openssl s_client -host google.com -port 443 -tls1

    # Test TLS v1.1 connectivity
    openssl s_client -host google.com -port 443 -tls1_1

    关于sql-server - .NET 5 + Microsoft.Data.SqlClient - 从传输流接收到意外的 EOF 或 0 字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66445221/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com