IIS应用程序池回收-尝试首次连接到sql server时超时

问题描述 投票:2回答:1

。Net Web应用程序上有一个非常奇怪的问题。该应用程序可以在多种环境下运行,没有任何问题。在我们安装的新环境中,为应用程序执行计划的回收时,有时会收到一个错误,指出所有池连接都在使用中。存在用于在不同计算机上进行负载平衡的相同应用程序-通常只有一个失败。失败之后,我们在事件查看器中看到应用程序重新启动了几次-在发生2-3次失败后,它成功并成功启动。下面的错误是关于所有池连接都在使用中-怎么会这样呢?我们刚刚回收了该应用程序,因此清除了该池。我们缺少什么?

错误是:System.InvalidOperationException:超时已过期。从池中获取连接之前已经过超时时间。这可能是由于所有池化连接都在使用中,并且已达到最大池大小而发生的]

错误在第:System.Data.ProviderBase.DbConnectionFactory.TryGetConnection

谢谢

.net iis timeout connection-pooling application-pool
1个回答
0
投票

我遇到同样的问题。您找到解决方案了吗?

让我添加我的发现的详细信息:

我刚刚将网站(基于Dotnetnuke / DNN的网站)移到了更新的服务器上,现在每次回收应用程序池时都会遇到相同的错误。在高峰时段,错误可能在几分钟内在事件日志中发生数百次,并且网站向用户返回了一个通用的“ 503不可用”错误(而不是错误页面的自定义,用户友好版本)。 >

该Web应用程序是相同且未更改的,因此我很确定这不是由于错误的编码而导致数据库连接处于打开状态。新旧服务器环境之间的主要区别是:

  • Windows Server 2019 / IIS 10与Windows Server 2008 R2的对比
  • 单独服务器上的SQL Server 2014(Hyper-V)与Web服务器上数据库的本地安装
  • 我怀疑这与在与位于单独服务器上的SQL Server的连接处理方式上的差异有关。也许与IIS回收应用程序池的方式有关,在关闭现有版本的同时旋转Web应用程序的新实例时导致错误/问题。

© www.soinside.com 2019 - 2024. All rights reserved.