首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用配置而不是重新编译来更改默认的SqlCommand CommandTimeout?

使用配置而不是重新编译来更改默认的SqlCommand CommandTimeout?
EN

Stack Overflow用户
提问于 2009-06-16 14:06:45
回答 4查看 27.5K关注 0票数 7

我正在支持ASP.Net 3.5 web应用程序,用户在尝试运行报告时遇到30秒后的超时错误。环顾网络,似乎很容易改变代码中的超时,不幸的是,我不能访问代码和重新编译。有没有办法为web应用程序、工作进程、IIS或整个计算机配置默认值?

下面是堆栈跟踪到它在System.Data中的位置,以防我遗漏了一些其他问题:

代码语言:javascript
运行
复制
[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) +1948826
  System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4844747
  System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
  System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2392
  System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
  System.Data.SqlClient.SqlDataReader.get_MetaData() +83
  System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
  System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +954
  System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
  System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
  System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141
  System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
  System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +10
  System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +130
  System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior) +162
  System.Data.Common.DbDataAdapter.Fill(DataTable dataTable) +115

--编辑

一定有代码之外的东西-我已经下载了数据库,并在安装在测试服务器上的同一网站上运行它,它运行超过30秒并返回报告。我已经比较了实时服务器和测试服务器上.Net目录中的machine.config和web.config文件,它们看起来是一样的,比较了两个IIS设置,还查看了SQL Server配置,唯一的区别是实时服务器集群在64位W2K3上,而测试服务器是在32位上。

EN

Stack Overflow用户

发布于 2009-06-16 14:17:43

据我所知,您可以在连接字符串中设置连接超时,这可以控制ADO在尝试连接到SQL Server时等待多长时间,而不会影响命令超时。

就我个人而言,我认为应该有一种方法来改变这种设置。假设它所在的程序集不是强名称的,那么您最好的选择可能是对代码进行反向工程,修改源代码并使用新名称重新部署程序集。

票数 2
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1001713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档