sql-server 从Linux应用服务计划中托管的.NET Core Azure Web应用连接到SQL Server 2016时出错

cbwuti44  于 2022-10-31  发布在  Linux
关注(0)|答案(1)|浏览(150)

概述

我们将.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上,我们可能需要看看,以允许这两个访问?

bakd9h0s

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
如果您有任何问题,请使用以下命令:

相关问题