如何防止应用程序超时过期异常

本文关键字:过期 异常 超时 应用程序 何防止 | 更新日期: 2023-09-27 18:11:23

请帮助从下面的Stack Strace找出异常的原因:

Error=Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding., 
StackTrace = at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   at Core.ResService.DataAccess.SQLHelper.ExecuteNonQuery(SqlConnection conn, SqlTransaction trans, CommandType cmdType, String cmdText, SqlParameter[] cmdParms)
   at Core.ResService.DataAccess.ReservationDal.SelectActiveResXml(Int32 resvID, String sessionID)
   at Core.ResService.BusinessLogic.Reservation.SelectActiveReservation(Int32 hotelID, Int32 resvID, String sessionID) 
如果您对上述异常堆栈结构(如可能的解析和原因)有任何了解,我们将不胜感激。

如何防止应用程序超时过期异常

它就在堆栈跟踪中告诉你。SQL调用超时。要么修复SQL调用,要么增加超时。在命令对象上有一个超时属性,但是您应该真正修复您的SQL。