【发布时间】:2010-12-21 22:23:24
【问题描述】:
我们有一个复杂的客户端-服务器应用程序,它使用 .NET Framework 开发并使用 SQL Server 2005。我们使用 LinqToSql,但我们管理所有连接的生命周期,并将打开的连接传递给任何创建的 DataContext。我们还在此产品中使用了 Microsoft WF。 WF 建立自己的连接来持久化工作流实例。
当服务器运行大约一两天时,我们最终会得到一些“ReclaimedConnections”,这意味着我们还没有关闭一些我们一直在使用的 SQL 连接。我们已经审查了所有代码并使用了可能的方法来确保我们正在关闭我们正在创建的任何和所有连接。连接似乎几乎不可能保持打开状态,因为我们使用它们的地方很少。
有什么方法可以查明何时拨打了SqlConnection.Open() 或SqlConnection.Close()。我们需要知道这些方法何时被调用以及调用者是谁(可能会为此获得一个调用堆栈)。
谢谢
【问题讨论】:
标签: c# .net sql linq-to-sql .net-3.5