2010-09-15 78 views
1

我們正在使用的OleDbConnection在C#中的傳統應用程序connecto到SQL Server 2000,其中SQL服務器超時10秒後

  • 連接字符串中包含 「連接超時= 5;」和
  • 我們將CommandTimeout設置爲30秒。

然而,當我們在服務器速度較慢時運行一個命令(在事務中插入一些事務)時,查詢在僅僅10秒後超時。

System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. 
    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) 
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 
    at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) 
    at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj) 
    at System.Data.SqlClient.TdsParserStateObject.ReadPacket(Int32 bytesExpected) 
    at System.Data.SqlClient.TdsParserStateObject.ReadBuffer() 
    at System.Data.SqlClient.TdsParserStateObject.ReadByte() 
    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 
    at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionPreYukon(TransactionRequest transactionRequest, String transactionName, IsolationLevel iso, SqlInternalTransaction internalTransaction) 
    at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction internalTransaction) 
    at System.Data.SqlClient.SqlInternalTransaction.Commit() 
    at System.Data.SqlClient.SqlTransaction.Commit() 
    [...] 

我在想什麼?是否有超時值,我沒有將默認值設置爲10秒?

回答

0

我認爲這不太可能,因爲通常會產生一個不同的異常,但也許你正在運行默認的事務超時,這是偶然的10秒。

以下內容添加到你的「的app.config」,並調整超時設置爲較大的值:

<system.transactions> 
    <defaultSettings timeout="00:10:00"/> 
</system.transactions> 

需要注意的是,如果實際解決您的問題,您可能需要指定內的實際超時您代碼,僅用於相關交易(例如,使用TransactionScope類的相應選項)。

+0

感謝您的幫助!我無法驗證此時是否有效,但下次問題出現時我會嘗試。 – laktak 2010-09-20 07:46:22