概述
我们将.NET Core Web API(.Net 6)部署为Azure Web应用程序,并尝试连接到内部部署的SQL Server。这是一个非常简单的API。一个端点。它只是连接到我们的内部部署数据库,检索并返回单个值。
我们采用了完全相同的API并进行了部署:
1.到使用Windows应用程序服务计划部署的Azure Web应用程序。
1.到使用Linux应用程序服务计划部署的Azure Web应用程序。
我们已将相应Azure Web API的出站IP列入白名单,以避免防火墙问题。
问题
部署到Window应用程序服务计划的API在连接和查询本地数据库时没有问题。但是,部署到Linux应用程序服务计划的同一API在尝试连接和运行查询时会导致以下错误:
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)
有人知道为什么我们会在Linux上遇到问题,而不是在Windows上,我们可能需要看看,以允许这两个访问?
- 相关文章 *
- SQL Server Pre-Login Handshake (error: 31 - Encryption(ssl/tls) handshake failed)-我们在内部支持TLS 1.2,此外,我们的连接字符串指定“TrustServerCertificate=True”
- A connection was successfully established with the server, but then an error occurred during the pre-login handshake-我们已尝试重新部署应用程序并重新启动应用程序。我们尝试在连接字符串中输入“Encrypt=False”,但也没有输入“PersistSecurity Info=True”。我们使用的是内部服务器的实际IP,没有命名。
1条答案
按热度按时间bakd9h0s1#
“加密(ssl/tls)握手失败...”这意味着其他的东西。只是添加下面的代码到docker文件。并测试它在本地第一。然后你可以尝试在Azure。
如果您在运行时使用了一个新的协议,那么您就可以使用该协议来创建一个新的服务。
如果您想使用一个新的服务器,请使用以下命令:
/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/ssl/openssl.cnf/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/ssl/openssl. cnf/etc/etc/ssl/openssl/openssl.cnf/etc/etc/ssl/openssl
如果您有任何问题,请使用以下命令: