我們對數據訪問層(C#)和數據庫(MS SQL)之間的交互進行了一些自動化測試。我們正在使用SQL Express來安裝一個mdf,在測試完成後我們將恢復它。這似乎是第一次在新引導的機器上運行測試,即使SQLExpress正在運行,我們也會看到超時。第二次,他們運行得很好。如何通過測試讓我的SQL Server Express連接第一次超時?
查詢字符串例如:
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()
有沒有人遇到過這個?你找到了解決辦法嗎?
您如何確認SQL Server已啓動並正在運行?您是否正在檢查SQL Server錯誤日誌文件以確保所有啓動操作都已完成? – 2009-04-17 19:02:08