我正在支持ASP.Net 3.5 web应用程序,用户在尝试运行报告时遇到30秒后的超时错误。环顾网络,似乎很容易改变代码中的超时,不幸的是,我不能访问代码和重新编译。有没有办法为web应用程序、工作进程、IIS或整个计算机配置默认值?
下面是堆栈跟踪到它在System.Data中的位置,以防我遗漏了一些其他问题:
[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位上。
发布于 2009-06-16 14:17:43
据我所知,您可以在连接字符串中设置连接超时,这可以控制ADO在尝试连接到SQL Server时等待多长时间,而不会影响命令超时。
就我个人而言,我认为应该有一种方法来改变这种设置。假设它所在的程序集不是强名称的,那么您最好的选择可能是对代码进行反向工程,修改源代码并使用新名称重新部署程序集。
https://stackoverflow.com/questions/1001713
复制相似问题