我创建了一个存储过程。当我在查询分析器中执行它时需要47秒。 所以我的Web应用程序抛出了Timeout异常。 我们可以在我的代码或web.config文件中进行任何修改,而不是在存储过程中进行更改以解决此问题。
我的配置文件中有以下设置
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="120"/>
我的代码是:
Dim ds = New DataSet()
_dbCommand = _database.GetStoredProcCommand("GetDetailsForAll")
_dbCommand.CommandType = CommandType.StoredProcedure
ds = _database.ExecuteDataSet(_dbCommand)
如果我再添加一行:
_dbCommand.CommandTimeout = 120
然后我的问题解决了。
所以我的问题是我在web.config文件中设置了超时。我是否还需要在我的代码中添加_dbCommand.CommandTimeout = 120行。
答案 0 :(得分:3)
基于更新问题的新答案
.config文件中连接字符串属性的超时是连接超时,而不是命令超时。连接超时是指等待SQL Server最初响应连接的时间,而不是执行查询所需的时间。
如果要在配置文件中设置命令超时,则必须自己编码,因为它不是连接字符串的一部分。
答案 1 :(得分:1)
扩大db-connection-class中的超时..但我建议先优化SP!