Ошибки при локальном подключении (с .Net Core 3.1 в Docker)

#sql-server #amazon-web-services #docker #asp.net-core

Вопрос:

В настоящее время я запускаю .Net Core 3.1 приложение Docker Nginx обратным прокси-сервером) на экземпляре EC2.

У меня есть локальная база данных (и VPN-туннель между моим VPC и локальным маршрутизатором), но когда я пытаюсь подключиться к базе данных, у меня возникает ошибка, и я не могу найти, откуда она взялась и как ее исправить.

Вот трассировка стека :

 Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    | fail: Microsoft.EntityFrameworkCore.Database.Connection[20004]
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |       An error occurred using the connection to database 'TEST_MANHATTAN' on server '192.168.1.7sql2012'.
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    | fail: Microsoft.EntityFrameworkCore.Query[10100]
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |       An exception occurred while iterating over the results of a query for context type 'ManhattanPlatform.Areas.Identity.Data.OnPremiseContext'.
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |       Microsoft.Data.SqlClient.SqlException (0x80131904): 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)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |        ---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception.
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |        ---> Interop OpenSsl SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL.
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |        ---> Interop Crypto OpenSslCryptographicException: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          --- End of inner exception stack trace ---
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]amp; sendBuf, Int32amp; sendCount)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContextamp; context, ArraySegment`1 inputBuffer, Byte[]amp; outputBuffer, SslAuthenticationOptions sslAuthenticationOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          --- End of inner exception stack trace ---
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.ProcessAuthentication(LazyAsyncResult lazyResult, CancellationToken cancellationToken)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.AuthenticateAsClient(SslClientAuthenticationOptions sslClientAuthenticationOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.SNI.SNITCPHandle.EnableSsl(UInt32 options)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Booleanamp; marsCapable, Booleanamp; fedAuthRequired)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover, SqlAuthenticationMethod authType, SqlAuthenticationProviderManager sqlAuthProviderManager)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool, SqlAuthenticationProviderManager sqlAuthProviderManager)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternalamp; connection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternalamp; connection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternalamp; connection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.SqlClient.SqlConnection.Open()
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.InitializeReader(DbContext _, Boolean result)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext()
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |       ClientConnectionId:8e308087-4105-4b69-bd4b-ae51089678c4
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    | Microsoft.Data.SqlClient.SqlException (0x80131904): 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)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |  ---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception.
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |  ---> Interop OpenSsl SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL.
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |  ---> Interop Crypto OpenSslCryptographicException: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    --- End of inner exception stack trace ---
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]amp; sendBuf, Int32amp; sendCount)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContextamp; context, ArraySegment`1 inputBuffer, Byte[]amp; outputBuffer, SslAuthenticationOptions sslAuthenticationOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    --- End of inner exception stack trace ---
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.ProcessAuthentication(LazyAsyncResult lazyResult, CancellationToken cancellationToken)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.AuthenticateAsClient(SslClientAuthenticationOptions sslClientAuthenticationOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.SNI.SNITCPHandle.EnableSsl(UInt32 options)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Booleanamp; marsCapable, Booleanamp; fedAuthRequired)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover, SqlAuthenticationMethod authType, SqlAuthenticationProviderManager sqlAuthProviderManager)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool, SqlAuthenticationProviderManager sqlAuthProviderManager)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternalamp; connection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternalamp; connection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternalamp; connection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.SqlClient.SqlConnection.Open()
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReader(RelationalCommandParameterObject parameterObject)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.InitializeReader(DbContext _, Boolean result)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable`1.Enumerator.MoveNext()
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    | ClientConnectionId:8e308087-4105-4b69-bd4b-ae51089678c4
 

Комментарии:

1. Не могли бы вы поделиться своей строкой подключения (с отредактированной конфиденциальной информацией), пожалуйста? Может быть, вам нужен TrustServerCertificate=True набор?

2. Вот моя строка подключения : «OnPremiseContextConnection»: «Сервер=192.168.1.7\sql2012;База данных=[XXXX];Идентификатор пользователя=[XXXX];Пароль=[XXXX]TrustServerCertificate=True;» Но, как вы можете видеть, я уже пробовал TrustServerCertificate (lol), но кажется, что все происходит с SQL-сервера, который не обновлялся с 2018 года (поэтому он не поддерживает TLSv1.2)

3. Возможно, в вашем комментарии произошла ошибка копирования-вставки, но между паролем и точкой с запятой отсутствует TrustServerCertificate .

4. Да, я стер его по ошибке, извините ^^’

Ответ №1:

Похоже, проблема в том, что и клиент (контейнер), и сервер SQL разговаривают на разных языках, т. Е. TLS 1.2 или TLS1.3, и ни один из них не поддерживается сервером SQL, к которому вы пытаетесь подключиться. Проверьте версию SQL Server и исправьте ее, чтобы определить поддерживаемые ею шифры TLS и SSL.

Комментарии:

1. Спасибо вам за вашу помощь. После некоторых исследований мы обнаружили, что сервер не обновлялся с 2018 года… Мы постараемся обновить его и еще раз проверить, все ли работает. Я буду держать вас в курсе дальнейших событий