dwi*_*del 5 .net sql-server ado.net web-services
我继承了一个严重的连接对象泄漏的.net/web服务项目.奇怪的是,它已经生产了很长一段时间,直到最近才出现问题.我猜垃圾收集器通常会很快清理它们.一个客户站点上的一个Web服务器在负载很重的情况下已经开始耗尽连接.
显然,解决方案是修复所有连接泄漏,但这不会很快发生.我甚至无法更改连接字符串中的最大池设置,连接字符串由应用程序动态构建.这将需要更改代码,这需要通过一个不快的过程.
我可以在服务器上做些什么来缓解这种情况,直到代码发生变化为止?
为什么这只是一个地方的问题,那个位置较小?如果我知道这个问题的答案,我可以找出一个临时工作.
是否有可能实际问题完全是另一回事并导致连接池问题?例如,可能是服务器上的负载平衡已经出现问题,或者出现问题的Web服务器出现了问题.
quickfix可以增加连接字符串上的Pool Size.添加此属性Max,Pool Size=1000以便您的字符串看起来像ie.这个
Data Source=server;Initial Catalog=db;User ID=user; Password=pwd;Max Pool Size=1000
Run Code Online (Sandbox Code Playgroud)
如果您在 IIS 6 或更高版本中托管它(我认为),那么您可以强制应用程序池按计划进行回收。我必须使用一个不会关闭与 Oracle 数据库的连接的远程处理应用程序来完成此操作;我们将对象放入自己的应用程序池中,然后将其设置为每小时回收一次。这在我们追踪问题并发布修复程序的过程中持续了几个月。
| 归档时间: |
|
| 查看次数: |
9493 次 |
| 最近记录: |