SQL Server Timeout Timeout Post-Login Phase Docker .net8 openssl3.0 уже конфигурация для TLSV1C#

Место общения программистов C#
Ответить
Anonymous
 SQL Server Timeout Timeout Post-Login Phase Docker .net8 openssl3.0 уже конфигурация для TLSV1

Сообщение Anonymous »

Мне нужно подключиться к «очень» старому SQL Server DB, работающему V10.50.2550.0 (Win NT 6.1 (7601)) (SQL Server 2008)
Да, я знаю, что это должно быть обновлено, но нет Способ для этого банкомата!# downgrade TLS for SQL Server 2008 to connect (pre SP3)
RUN sed -i '/\[openssl_init\]/a ssl_conf = ssl_configuration' /etc/ssl/openssl.cnf && \
echo "\n[ssl_configuration]" >> /etc/ssl/openssl.cnf && \
echo "system_default = tls_system_default" >> /etc/ssl/openssl.cnf && \
echo "\n[tls_system_default]" >> /etc/ssl/openssl.cnf && \
echo "MinProtocol = TLSv1" >> /etc/ssl/openssl.cnf && \
echo "CipherString = DEFAULT@SECLEVEL=0" >> /etc/ssl/openssl.cnf
# downgrade fertig.

< /code>
Как это тестировать: < /p>
using Microsoft.Data.SqlClient;
private static void DBTestManuel(DatenbankTest dbTest)
{
Console.WriteLine("ManuellerTestStart");
List Items = new List();
try
{
using (SqlConnection conn = new SqlConnection(dbTest.ConString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("Aufträge_GetByKundenNr", conn))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@KundenNr", 11117);
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.HasRows)
{
while (reader.Read())
{
Items.Add(GetRowFromReader(reader));
}
}
}
Console.WriteLine($"List mit : {Items.Count}");
}
}
}
catch (Exception ex)
{
Console.WriteLine("ManuellerTest" +
"\nRIEDSQL_Archiv FAILED" +
"\nException:" +
$"\n{ex}");
}

Console.WriteLine("ManuellerTestEnde");
}
< /code>
Строка подключения (домен и пароль заменены): < /p>
public string ConString = @"Data Source=mydomain;Initial Catalog=Archiv;User ID=msAuftragImport;Password=mypassword;TrustServerCertificate=True;Encrypt=false";
< /code>
Проблема: < /p>
The timeout period elapsed during the post-login phase.
The connection could have timed out while waiting for server to complete the login process and respond;
Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was
- [Pre-Login] initialization=143;
handshake=359;
[Login] initialization=1;
authentication=18;
[Post-Login] complete=14609;
---> System.ComponentModel.Win32Exception (258): Unknown error 258
< /code>
on connection.open Я получаю следующее исключение: < /p>
Microsoft.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=143; handshake=359; [Login] initialization=1; authentication=18; [Post-Login] complete=14609;
---> System.ComponentModel.Win32Exception (258): Unknown error 258
at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at Microsoft.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning(Boolean callerHasConnectionLock, Boolean asyncClose)
at Microsoft.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at Microsoft.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
at Microsoft.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value)
at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at Microsoft.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at Microsoft.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
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)
at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides)
at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides)
at Microsoft.Data.SqlClient.SqlConnection.Open()
at ConsoleApp1.Program.DBTestManuel(DatenbankTest dbTest) in /src/ConsoleApp1/Program.cs:line 27
ClientConnectionId:089dfd32-0cce-416d-93a1-9b8d3cd31a3a
Error Number:-2,State:0,Class:11
< /code>
ps до того, как я изменил изображение, это была известная ошибка TLS /SSL < /p>
Как указано выше, изменило изображение, чтобы запустить TLSV1
и Altert the ConnectionString с TrustServerCertificate = true; Encrypt = false
Я понимаю, что это должно игнорировать любой SSL/TLS?


Подробнее здесь: https://stackoverflow.com/questions/793 ... -already-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»