1

アプリを 2 回目に実行すると、asp.net アプリケーションの致命的なクラッシュが発生します。再構築後の最初の実行は正常に実行されますが、2 回目の実行 (新しい再構築なし) は失敗します。新しい再構築後、アプリは再び実行されますが、新しい再構築なしの 2 回目の実行は失敗します。そのため、アプリの実行を成功させるには毎回再構築する必要があります。

エラー: ファイル [C:...\bin\BiFiContext.xml] 行 8 で定義された名前が 'BiFiModelSweden' のオブジェクトの型 [BiFiModelSweden.BiFiModelSwedenClass] を解決できません

これは、null である IApplicationContext の作成中に、以下の最後のコマンドで発生します。

String cx1 = ConfigurationManager.AppSettings["cx1"];
String cx2 = ConfigurationManager.AppSettings["cx2"];
IApplicationContext cxt = new XmlApplicationContext(HttpContext.Current.Request. MapPath(cx1), HttpContext.Current.Request.MapPath(cx2));

ANTS メモリ プロファイラーを使用して、アプリケーションを実行している開発用 Web サーバーをプロファイリングすると、次のような出力が得られます。

すべてのオブジェクトが contextregistry から削除されたわけではありません。base.Dispose() を使うのを忘れましたか?

次に、あらゆる種類の方法を使用して dispose メソッドを使用するためにできる限りのことを試みました。このアプリケーションの致命的なクラッシュを克服することはできません!

追加の観察: アプリケーションが途中で停止されても、log4net はログを記録し続けます。これはゾンビセッションを象徴していますか? これは、新しいアプリケーションの実行/セッションを開始するときに、1 つのセッションを完全に強制終了することがないという問題でしょうか? 致命的な例外につながる?前のセッションがハングしたままリソースに保持 (ロック) されていることを確認しますか?

この場合、セッションを強制終了するすべての方法を試しました: * session.Abandon() * gc.finalize() * など

何も機能しません。唯一の回避策は、キャッシュを手動で削除することです...これは非現実的です。これをどう解決するか!!

4

0 に答える 0