我有一个最多由10个客户端调用的web服务。该webservice由7个不同的asmx页面构成,每页有大约100-200个功能。在webservice中处理sql-connections的最佳方法是什么?
所有这些函数都针对MSSQL2005或MS SQL2000数据库。在一天中的某些时段,来自客户端的流量很大,似乎我的sql服务器上的连接用完,导致所有客户端停止。
在每一个函数中,我打开一个连接,执行这些操作,然后关闭连接,有时候事务处理有时不会。
在服务器上,我发现它创建了很多连接,我不知道为什么它们不会消失,但是即使在函数完成并结束后,它仍然保留在那里。所以我可以确保我的10位客户不时创建超过80个连接。有时候他们中的一些人会消失,有时他们在使用后还有几个小时。那里是否有某种集合?
问题1: 是否有另一种方法来处理我应该使用的连接,如每个Web服务或其他任何方式的全局连接?
问题2: 如果它可以处理每个函数的连接,那么为什么它不关闭服务器上的连接,使得打开的连接列表一直越来越大,直到我失去连接 - 错误?
这个问题是关系到我的其他问题,但不一样的:Strange SQL2005 problem. "SqlConnection does not support parallel transactions"
我现在已经缩小下来的“出连接”的错误。
您是否使用Windows身份验证,并通过客户的身份,还是您的Web服务已经使用的每一个连接一个用户名/密码?我认为前者会影响ASP.NET集中连接的能力。 – 2009-01-06 19:56:14
WebService的有用于创建所有连接一个ConnectionString的。没有Windows验证。 – Stefan 2009-01-06 20:49:31