閉じられていないSQLConnectionを見つける最新の方法
-
11-12-2019 - |
質問
私は、以下の、刺激的なエラーを返しているASP.NET Webアプリケーションを持っています:
タイムアウトが期限切れになりました。Aを取得する前にタイムアウト期間が経過した プールからの接続。これはすべてプールされたために発生した可能性があります 接続が使用されており、最大プールサイズに達しました。
マイマネージャーは、これがアプリケーション内の閉じられていない
SqlConnection
のためです。したがって、接続内のすべてのコードファイルを手動で確認して、接続が開いたままになっているかどうかを確認します。このエラーのルートを見つけるためのより速い解決策はありますか?
解決
異なるオプションの束:
-
RESHARPERを使用し、その「模様での検索」(「構造検索」とも呼ばれます): http://blogs.jetbrains.com/dotnet/2010/04/introding-resharper-50-Structural-search-and-replace/
-
FXCOPまたはROSLYN用のミニチュアシンタックスツリーウォーカーを書き込む(基本的には、新しいSQLConnectionが配置されていない)
-
SqlConnectionのラッパークラスを書き込み、そこにある開閉接続を追跡します。
-
WinDBGを「ライブ」または理想的にエラーに駆り立て、ヒープオブジェクトを退会中の場所に戻す。
-
は、オブジェクト作成のための呼び出しスタックを呼び出すための適切なプロファイラ(Scitechは、きちんとしたものです)をつかみます。
所属していません StackOverflow