【问题标题】:Unable to connect to SQL Server session database - The wait operation timed out无法连接到 SQL Server 会话数据库 - 等待操作超时
【发布时间】:2026-02-18 02:15:02
【问题描述】:

因此,此问题不是连接字符串过多或连接字符串未正确处理的问题之一。 ASP.NET Sql Server 存储会话几个月来一直运行良好,网站上的流量不错,现在我收到很多无法连接到 SQL Server 会话数据库 - 等待操作超时异常。数据库有足够的内存可用,数据库分配了足够的内存。网站抛出错误时只有少数用户。

我有两台刀片服务器并排放置,网站的流量非常低,因此我不需要将连接超时从默认的 15 秒延长。

我正在使用 Windows 身份验证,我可以通过 SSMS 连接并查询用作 ASP.SESSION 持久层的 ASPSession 数据库,没问题。

我只是目前没有继续这个错误。

【问题讨论】:

  • 第一个想法:增加 ADO.NET 连接字符串中的默认超时。默认为 15 秒。
  • 好吧,我可以这样做,但为什么我需要这样做,我的数据库服务器的响应永远不会超过一秒,我的服务器是刀片服务器,位于托管中的每个服务器旁边。
  • Windows 身份验证,我可以通过 SSMS 连接并查询用作 ASP.SESSION 持久层的数据库。
  • 为了调查目的,万一行为没有被复制你知道问题出在哪里......
  • 我从未见过连接成功 15 秒过去了。增加超时很可能不是解决方案。

标签: c# asp.net sql sql-server session


【解决方案1】:

看起来问题是我的数据库服务器上的 RAID 出现 I/O 错误。不得不换掉硬盘,一切似乎都很好。

【讨论】:

    【解决方案2】:

    我有同样的问题,我不知道为什么,因为我在 app.config 中设置了 300 秒(5 分钟)的超时,否则我在使用 sqlCommand 时没有注意到连接超时是 300秒,但是对于 sqlCommand 是 30 秒,所以我设置了 sqlCommand.ConnectionTimeout = 300(是 30)并解决了我的问题。

    我还在某处读到了关于使用 WITH NOLOCK 的信息,它可以解决某些人的问题,这会加快你的 sql,但我建议你在 Microsoft 阅读一下,因为这不是你应该使用的东西,因为你不了解这个概念。

    【讨论】: