【问题标题】:Errors with an on-premise connection (with .Net Core 3.1 on Docker)本地连接错误(在 Docker 上使用 .Net Core 3.1)
【发布时间】:2021-12-11 00:24:11
【问题描述】:

我目前在Docker 上运行.Net Core 3.1 应用程序(使用Nginx 作为反向代理),在 EC2 实例上。

我有一个本地数据库(以及我的 VPC 和我的本地路由器之间的 VPN 隧道),但是当我尝试连接到数据库时,我遇到了一个错误,我找不到在哪里它来自以及如何解决它。

这是堆栈跟踪:

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.7\sql2012'.
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[]& sendBuf, Int32& sendCount)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, ArraySegment`1 inputBuffer, Byte[]& 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, Boolean& marsCapable, Boolean& 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, DbConnectionInternal& connection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |          at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& 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, DbConnectionInternal& 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[]& sendBuf, Int32& sendCount)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, ArraySegment`1 inputBuffer, Byte[]& 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, Boolean& marsCapable, Boolean& 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, DbConnectionInternal& connection)
Base_backend.1.l4u8imxbglsf@ip-192-168-100-188    |    at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& 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, DbConnectionInternal& 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

【问题讨论】:

  • 您能分享您的连接字符串(敏感信息已编辑)吗?也许你需要TrustServerCertificate=True 设置?
  • 这是我的连接字符串: "OnPremiseContextConnection": "Server=192.168.1.7\\sql2012;Database=[XXXX];User id=[XXXX];Password=[XXXX]TrustServerCertificate=True; "但正如你所见,我已经尝试过 TrustServerCertificate(大声笑),但似乎一切都来自自 2018 年以来未更新的 SQL Server(因此它不支持 TLSv1.2)
  • 您的评论中可能存在复制粘贴错误,但密码和TrustServerCertificate 之间缺少分号。
  • 是的,我误删了,对不起^^'

标签: sql-server amazon-web-services docker asp.net-core


【解决方案1】:

看起来问题是客户端(容器)和 SQL Server 都在使用不同的语言,即 TLS 1.2 或 TLS1.3,而您尝试连接的 SQL Server 不支持其中任何一个。检查 SQL Server 的版本并对其进行修补以确定其支持的 TLS 和 SSL 密码。

【讨论】:

  • 感谢您的帮助。经过一番研究,我们发现服务器自 2018 年以来一直没有更新……我们将尝试更新它并再次检查是否一切正常。我会随时通知您进一步的事件
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 2021-02-05
  • 2021-07-27
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
相关资源
最近更新 更多