2010-09-15 79 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