我正在开发一个基于asp.net技术构建的Web应用程序,并且在按钮点击事件上有一个存储过程调用,执行时间大约为1分钟到2分钟,页面在异常下面抛出一次它超过30秒。 代码文件丢失,因为应用程序是由其他人开发的,但我可以通过IIS访问web.config文件。
Web配置文件需要进行哪些更改才能解决问题:
下面是我得到的错误:
以下是错误:
>应用程序中的服务器错误。等待操作超时 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ComponentModel.Win32Exception:等待操作超时
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
堆栈追踪:
[Win32Exception(0x80004005):等待操作超时]
[SqlException(0x80131904):超时已过期。操作完成之前经过的超时时间或服务器没有响应。] System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection,Action`1 wrapCloseInAction)+388 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,Boolean callerHasConnectionLock,Boolean asyncClose)+717 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean& dataReady)+4515 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()+61
答案 0 :(得分:0)
使用SqlCommand.CommandTimeout Property
获取或设置在终止执行命令并生成错误的尝试之前的等待时间。
默认时间:等待命令执行的时间(以秒为单位)。 默认值为30秒。
更新我们ConnectionString
web.config
中的某些内容,例如
"Data Source=**;Initial Catalog=**;Timeout=90;Persist Security Info=True;User ID=**;Password=**"
在cs文件中阅读此内容 SqlCommand command = new SqlCommand(queryString,connection); command.CommandTimeout = ConfigurationManager.AppSettings [" CommandTimeOut"]
或如果要在查询时直接设置
// Setting command timeout to 90 seconds
command.CommandTimeout = 90;