System.Data.SqlClient.SqlException 超時時間已到
錯誤資訊:
有關呼叫實時(JIT)除錯而不是此對話方塊的詳細資訊,
請參見此訊息的結尾。
************** 異常文字 **************
System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Timeout 時間已到。在操作完成之前超時時間已過或伺服器未響應。 (錯誤詳細資訊等於 很可能由 IncludeExceptionDetailInFaults=true 建立的 ExceptionDetail,其值為:
System.Data.SqlClient.SqlException: Timeout 時間已到。在操作完成之前超時時間已過或伺服器未響應。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
在 Microsoft.Practices.EnterpriseLibrary.Data.Database.DoExecuteNonQuery(DbCommand command)
在 Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteNonQuery(DbCommand command)
************** 已載入的程式集 **************
mscorlib
程式集版本:4.0.0.0
Win32 版本:4.0.30319.18444 built by: FX451RTMGDR
基本程式碼:file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
錯誤資訊或為:
System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. (錯誤詳細資訊等於 很可能由 IncludeExceptionDetailInFaults=true 建立的 ExceptionDetail,其值為: 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.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunB...)。 Server stack trace: 在 System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) 在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) 在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
解決方案:
System.Data.Common.DbCommand sqlStringCommand = this.db.GetSqlStringCommand(SQL);
sqlStringCommand.CommandTimeout = 1800000;
this.db.ExecuteNonQuery(sqlStringCommand);
修改Command的TimeOut屬性未合適的時間即可。
小注:
也許你會說,我在連線字串中已經 設定了 Connect Timeout=80000 ,並且資料庫中超時連線也是設定的值是一個很大的值。為啥到了30秒,仍然超時了呢??
這是因為:
你的設定並沒有問題,是你混淆了 SqlCommand.CommandTimeout 和 SqlConnection.ConnectionTimeout 這兩個的區別了。
你的連線字串中的超時只是設定的 SqlConnection.ConnectionTimeout 的值,而不是設定的 SqlCommand.CommandTimeout 的值。
SqlHelper 中並沒有 SqlCommand.CommandTimeout 的相關設定。需要你自己設定。
下面是兩個的比較:
SqlCommand.CommandTimeout
獲取或設定在終止執行命令的嘗試並生成錯誤之前的等待時間。
等待命令執行的時間(以秒為單位)。預設為 30 秒。
SqlConnection.ConnectionTimeout
獲取在嘗試建立連線時終止嘗試並生成錯誤之前所等待的時間。
等待連線開啟的時間(以秒為單位)。預設值為 15 秒。
小注部分參考:點選開啟連結
相關文章
- SQL Server ManagementS tudio無法修改表,超時時間已到SQLServer
- gRPC為什麼使用截止時間而不是超時時間?RPC
- 關鍵應用和超融合基礎架構:時機已到架構
- php 和 nginx 的幾個超時時間PHPNginx
- Apollo啟動配置排查,超時時間的配置
- Java傳送郵件必帶超時時間配置Java
- 前端單頁應用SPA時代結束,Hotwire時機已到 - DHH前端
- 45%的長期失業者睡眠時間少於7小時,10.7%的人睡眠時間超過10小時。
- MySQL時間戳、時間MySql時間戳
- context裡的超時時間是怎麼在微服務之間傳遞的Context微服務
- 他說,程式設計的黃金時代已到程式設計
- python之為函式執行設定超時時間(允許函式執行的最大時間)Python函式
- Linux時間設定系統時間、硬體時間和時間服務Linux
- mysql時間操作(時間差和時間戳和時間字串的互轉)MySql時間戳字串
- 建立時間和保持時間
- **java設定一段程式碼執行超時時間(轉)**Java
- 設定mysql 事務鎖超時時間 innodb_lock_wait_timeoutMySqlAI
- 獲取時間戳,幾個時間點的時間戳時間戳
- 時間段時間點自己理解
- C# 時間戳轉時間C#時間戳
- 時間型別和時間戳型別時間戳
- 上車時機已到--.NETCore是適應時代發展的雄鷹利劍NetCore
- 直播軟體搭建,當前時間、既定時間後的時間及時間比較大小
- linux-wdt 原理和任意超時時間設定的解決方法Linux
- 時間
- 查詢時若時間為空,開始時間取今天的零點,結束時間取當前時間
- Excel中時間戳轉換時間Excel時間戳
- 兩個時間戳的時間差時間戳
- 時間相減和時間轉換
- 時間戳轉化為時間格式時間戳
- PostgreSQL 插入時間與更新時間(qbit)SQL
- 勒索軟體保護即服務(RPaaS)時代已到來
- ubuntu 修改時區或時間 及網路同步時間Ubuntu
- 時間戳與時間字串的多時區轉換時間戳字串
- 記一次.net core 非同步執行緒設定超時時間非同步執行緒
- PHP CURL 業務呼叫第三方介面設定超時時間PHP
- 【時間戳轉普通時間格式的方法】時間戳
- pbootcms模板如何呼叫時間 時間格式大全boot
- 時間軸、流程類時間軸繪製