我认为使用LINQ时不可能出现SQL连接泄漏,但是NumberOfReclaimedConnections的Perfmon跟踪显示有很多,而且在高负载下有时会出现“超时。在从池中获取连接之前,已经超过了超时时间。这可能是因为所有的池化连接都在使用并且已达到最大池大小”的异常。
我们没有在DataContext上使用Dispose,因为我们使用了延迟加载。几篇文章和博客告诉我这不应该是问题。
但有时我们仍然会遇到这些异常。但是不可能每个LINQ查询都保持连接打开,否则我们会有更多的异常。
编辑
应用程序是一个WCF服务。
如果您查看LINQ的文档和大多数文章,它们声称不需要Dispose来释放连接。它们声称DataContext只保持连接打开所需的短时间。
我们没有在DataContext上使用Dispose,因为我们使用了延迟加载。几篇文章和博客告诉我这不应该是问题。
但有时我们仍然会遇到这些异常。但是不可能每个LINQ查询都保持连接打开,否则我们会有更多的异常。
编辑
应用程序是一个WCF服务。
如果您查看LINQ的文档和大多数文章,它们声称不需要Dispose来释放连接。它们声称DataContext只保持连接打开所需的短时间。