【问题标题】:How to investigate SQL Server Timeout Error on ASP.net application?如何调查 ASP.net 应用程序上的 SQL Server 超时错误?
【发布时间】:2012-05-12 18:08:36
【问题描述】:

我们在 NopCommerce - ASP.net MVC3 Web 应用程序上遇到服务器超时错误。

当我们结束 sql 进程时,错误会重新出现。结束时,它开始正常工作一段时间,然后又开始发生。

仅在最近几天才发生这种情况,在此之前它运行良好。请注意,其代码没有进行重大更新。

我们不知道可能是什么问题以及如何调查和解决它?是连接池相关问题还是什么?

这是堆栈跟踪:

超时。在操作完成之前超时时间已过或服务器没有响应。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。

来源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[SqlException (0x80131904): 超时。在操作完成之前超时时间已过或服务器没有响应。] System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection)+296 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +415 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2657 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +88 System.Data.SqlClient.SqlDataReader.get_MetaData() +114 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +505 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,布尔返回流,布尔异步)+1896 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +480 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String 方法) +28 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior 行为,字符串方法)+854 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior 行为)+22 System.Data.Mapping.Update.Internal.DynamicUpdateCommand.Execute(UpdateTranslator 翻译器,EntityConnection 连接,Dictionary2 identifierValues, List1 generatedValues)+269 System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter 适配器) +528

【问题讨论】:

    标签: asp.net sql-server sql-server-2008 connection-timeout


    【解决方案1】:

    @Dharmik Bhandari,可能有几个问题。尝试以下方法

    • 增加池大小
    • 设置 CommandTimeOut = 0(无限)
    • 设置 ConnectionTimeOut = 0(无限)
    • 数据库功能结束后立即释放连接资源

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      • 2016-08-10
      • 2019-05-27
      • 1970-01-01
      相关资源
      最近更新 更多