我有一个最多由 10 个客户端调用的 Web 服务。该网络服务由 7 个不同的 asmx 页面组成,每个页面有大约 100-200 个功能。
所有这些函数都针对 MSSQL2005 或 MS SQL2000 数据库工作。一天中的某些时段,来自客户端的流量很大,似乎我在 sql-server 上的连接用完了,导致所有客户端停止。
在每个函数中,我打开一个连接,做一些事情然后关闭连接,有时有事务,有时没有。
在服务器上,我看到它创建了很多连接,我不知道为什么它们不会消失,但即使在功能完成后仍然存在。所以我可以确定我的 10 个客户不时创建超过 80 个连接。有时它们中的一些会消失,有时它们在使用数小时后仍然存在。那里有某种池化吗?
问题 1:是否有另一种方法来处理我应该使用的连接,例如每个 Web 服务全局连接或任何其他方式?
问题 2:如果可以处理每个函数的连接,那么为什么它不关闭服务器上的连接,使打开的连接列表一直越来越大,直到我摆脱连接错误?
这个问题与我的另一个问题有关,但不一样:奇怪的 SQL2005 问题。“SqlConnection 不支持并行事务”
我现在将其范围缩小到“失去连接”错误。