У нас есть несколько автоматических тестов для взаимодействия между нашим уровнем доступа к данным (C #) и базой данных (MS SQL). Мы используем SQL Express для монтирования mdf, который мы возвращаем после завершения тестирования. Кажется, что при первом запуске тестов на только что загруженной машине мы видим тайм-ауты, хотя SQLExpress работает. Во второй раз они работают просто отлично.
Пример строки запроса:
Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\TEST_DATA.mdf; Integrated Security=True; User Instance=True
Пример ошибки:
[nunit2] 1) Test : System.Data.SqlClient.SqlException : Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
[nunit2] at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
[nunit2] at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
[nunit2] at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
[nunit2] at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
[nunit2] at System.Data.SqlClient.TdsParserStateObject.ReadPacket(Int32 bytesExpected)
[nunit2] at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
[nunit2] at System.Data.SqlClient.TdsParserStateObject.ReadByte()
[nunit2] at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
[nunit2] at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
[nunit2] at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
[nunit2] at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
[nunit2] at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
[nunit2] at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
[nunit2] at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
[nunit2] at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
[nunit2] at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
[nunit2] at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
[nunit2] at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
[nunit2] at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
[nunit2] at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
[nunit2] at System.Data.SqlClient.SqlConnection.Open()
[nunit2] at Test()
Кто-нибудь испытывал это? Вы нашли способ обойти это?