asp.net Web フォーム アプリケーションでバージョン 2.2.0.0 の Ninject を使用していますが、数百回の要求の後、Binding クラスの GetProvider メソッドで NullReferenceException がスローされることがあります。
スタック トレースの例: http://pastebin.com/BbhsPQMT
例外は、アプリケーションのストレス テストを行った場合にのみ発生し、通常は例外の発生元が異なります (個別のインターフェイスの解決)。
この問題が発生した理由を理解するために、Ninject のソース コードを調べて、デバッグ用のコード行をいくつか挿入しました。後になって、null になっているオブジェクトが Binding クラスの ProviderCallback プロパティであることを確認しました。
また、ProviderCallback プロパティが null に設定されているかどうかを理解するために、プロパティの set 演算子にいくつかのコードを追加しました。いくつかのテストを実行し、いくつかのメモリ ダンプを調べた後、ProviderCallback プロパティが null 値に設定されていないように見えるため、GC によってインスタンスが収集されていると思います。
どうしてこうなったのか、いまだによくわかりません…
どんな助けでも大歓迎です。
編集:例外がまだ発生するかどうかを確認するためだけに Ninject の最新バージョンにアップグレードしましたが、アプリケーションのストレス テスト後に同じ例外が発生しました: http://pastebin.com/YiaaZndz