我有.aspx页面,它只是使用SQL查询和网格来显示页面中的结果。我没有代码,它只是aspx页面。 如何在aspx页面或web.config中添加命令超时?在web.config中我知道我可以在Connection Timeout = 1000中添加连接字符串中的连接超时,但是如何添加命令超时以便在选择下拉参数以打开页面时不会收到Timeout Expired消息。看起来我的查询需要很长时间才能运行,我需要增加命令超时。
我收到超时消息:
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
超时已过期。完成之前已经过了超时时间 操作或服务器没有响应。
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.Data.SqlClient.SqlException:Timeout 过期。在完成之前经过了超时时间 操作或服务器没有响应。
[SqlException(0x80131904):超时已过期。超时期限 在完成操作之前经过或服务器没有经过 响应。]
System.Data.SqlClient.SqlConnection.OnError(SqlException异常, Boolean breakConnection)+212
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)+245 System.Data.SqlClient.TdsParser.Run(RunBehavior) runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)+1099
System.Data.SqlClient.SqlDataReader.ConsumeMetaData()+58
System.Data.SqlClient.SqlDataReader.get_MetaData()+112
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior,String resetOptionsString)+6319508
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(的CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,Boolean async)+6320577
System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String 方法,DbAsyncResult结果)+424
System.Data.SqlClient.SqlCommand.RunExecuteReader(的CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,String 方法)+28
System.Data.SqlClient.SqlCommand.ExecuteReader(的CommandBehavior 行为,字符串方法)+211
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(的CommandBehavior 行为)+19
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(的CommandBehavior 行为)+19 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset,DataTable [] datatables,Int32 startRecord,Int32 maxRecords, String srcTable,IDbCommand命令,CommandBehavior行为)+221
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,Int32 startRecord,Int32 maxRecords,String srcTable,IDbCommand命令, CommandBehavior行为)+573
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet,String srcTable)+161
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments 参数)+2803174
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments 参数,DataSourceViewSelectCallback回调)+27
System.Web.UI.WebControls.DataBoundControl.PerformSelect()+261
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()+82
System.Web.UI.WebControls.GridView.OnPreRender(EventArgs e)+46
System.Web.UI.Control.PreRenderRecursiveInternal()+ 108 8 System.Web.UI.Control.PreRenderRecursiveInternal()+224
System.Web.UI.Control.PreRenderRecursiveInternal()+224
System.Web.UI.Page.ProcessRequestMain(布尔 includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 3394
答案 0 :(得分:0)
您可以在Web.config中增加executionTimeout:
<configuration>
<system.web>
<httpRuntime executionTimeout="600" ... />
</system.web>
</configuration>
该值以秒表示。
<强>更新强>
根据您的异常消息,一种解决方案是增加SQLCommand对象的超时:
SqlCommand command = new SqlCommand(queryString, connection);
command.CommandTimeout = 600;
此处给出了针对类似问题的其他建议:Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. The statement has been terminated