坚持这几天,请帮忙。我尝试了很多解决方案,例如在web配置中增加连接超时:下面是我的错误代码。
Server Error in '/' Application.
The wait operation timed out
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
Exception Details: System.ComponentModel.Win32Exception: The wait operation timed out
来源错误:
Line 595: SqlCommand cmd = new SqlCommand(str, con);
Line 596: con.Open();
Line 597: rd = cmd.ExecuteReader();
Line 598: //cs.CloseConnection();
Line 599: return rd;
Source File: c:\inetpub\vhosts\xyz.com\httpdocs\App_Code\admin.cs Line: 597
堆栈追踪:
[Win32Exception (0x80004005): The wait operation timed out]
[SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +1789294
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5340642
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +244
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +1691
System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() +61
System.Data.SqlClient.SqlDataReader.get_MetaData() +90
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +377
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) +1421
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) +177
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +53
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +137
System.Data.SqlClient.SqlCommand.ExecuteReader() +99
admin.GetDatareader(String str) in c:\inetpub\vhosts\YXZ.com\httpdocs\App_Code\admin.cs:597
subcategories.Page_Load(Object sender, EventArgs e) in c:\inetpub\vhosts\XYZ.com\httpdocs\shop.aspx.cs:440
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +92
System.Web.UI.Control.LoadRecursive() +54
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34274
答案 0 :(得分:1)
您可以设置命令超时,如下所示:
SqlCommand cmd = new SqlCommand(str, con);
cmd.CommandTimeout = 480;
con.Open();
rd = cmd.ExecuteReader();
注意:除了超时配置外,还需要提高相关SQL的性能。
答案 1 :(得分:0)
尝试将0分配给命令超时,如下所示。值为0表示没有限制(执行命令的尝试将无限期地等待)。如果它仍然超时,则优化存储过程。
SqlCommand cmd = new SqlCommand(str, con);
cmd.CommandTimeout = 0;
con.Open();
rd = cmd.ExecuteReader();