.net 客户机-服务器应用程序中的死锁

.net 客户机-服务器应用程序中的死锁,.net,sql-server,deadlock,.net,Sql Server,Deadlock,我是一名.NET Programmer。最近,我编写了一个客户机-服务器应用程序,它使用System.Net.Sockets进行连接,并使用.Net远程处理进行通信。当客户端数量增加(最多100个)时,有时服务器应用程序会冻结,几分钟后恢复正常。我将SQL 2005与池和超时一起使用。检查您是否正在处理数据访问代码(例如连接)中所有可IDisposable的内容。例如,如果您使用的是SqlConnection类,那么您可以这样编写代码: using (var connection = new S

我是一名.NET Programmer。最近,我编写了一个客户机-服务器应用程序,它使用
System.Net.Sockets
进行连接,并使用.Net远程处理进行通信。当客户端数量增加(最多100个)时,有时服务器应用程序会冻结,几分钟后恢复正常。我将SQL 2005与池和超时一起使用。

检查您是否正在处理数据访问代码(例如连接)中所有可
IDisposable
的内容。例如,如果您使用的是SqlConnection类,那么您可以这样编写代码:

using (var connection = new SqlConnection(...))
{
    // code to do something with the connection
}
这将确保关闭.NET连接,从而释放到池的物理SQL Server连接。如果不这样做,则池将耗尽可用连接,直到其中一些连接开始超时并自动关闭