我们有一个使用.NET Framework开发并使用SQL Server 2005的复杂客户端 - 服务器应用程序。我们使用LinqToSql但我们管理所有连接的生命周期,并将开放连接传递给任何创建的DataContext。我们还在此产品中使用了Microsoft WF。 WF建立自己的连接以持久保存工作流实例。
当服务器运行大约一两天时,我们最终会得到一些“ReclaimedConnections”,这意味着我们还没有关闭一些我们一直在使用的SQL连接。我们已经审查了所有代码并使用了可能的意思,以确保我们正在关闭我们正在创建的任何和所有连接。似乎连接几乎不可能保持打开,因为我们使用它们的地方很少。
有没有办法找出何时拨打SqlConnection.Open()
或SqlConnection.Close()
。我们需要知道何时调用这些方法以及谁是调用者(可能会获得调用堆栈)。
由于
答案 0 :(得分:3)
您可以尝试红门ANTS Performance Profiler
http://www.red-gate.com/products/ants_performance_profiler/index.htm
答案 1 :(得分:0)
尝试dotTrace:http://www.jetbrains.com/profiler/index.html
答案 2 :(得分:0)
您可以使用Visual Studio中包含的dotTrace或Performance Profiler。