我相信在使用LINQ时不可能得到sql连接泄漏,但NumberOfReclaimedConnections的perfmon跟踪显示高数字,在高负载时,我们有时会得到"Timeout expired"等异常.在从池中获取连接之前已经过了超时时间.这可能是因为所有池连接都在使用中并且达到了最大池大小".
我们不在datacontexts上使用Dispose,因为我们使用了deferred loading.一些文章和博客文章告诉我,这应该不是问题.
我们有时会得到这些例外.但是,我们所做的每个linq查询都不能保持连接打开,那么我们就会有更多的异常.
编辑
该应用程序是一个WCF服务.
如果您查看Linq和大多数文章的文档,他们声称不需要Dispose来释放连接.他们声称DataCOntext只在需要的短时间内保持连接打开.