当社のアプリケーションの 1 つには、特定のレベルの例外が発生した場合にヘルプデスクに自動的に電子メールを送信するメカニズムがあります。NullReferenceException という特定の例外がいくつかの問題を引き起こしています。これは、IIS のリサイクルとセッションの喪失が原因であると考えられます。これを証明するために、アプリケーションが開始/停止/リサイクルされたときにログを記録し、これを行うためにglobal.asaxファイルにいくつかのコードを追加しました。デバッグ モードで実行すると、ログ メッセージが書き出され、すべて問題ないように見えます。問題は、IIS で構成されたフォルダーにビルドする Web 配置プロジェクトをトリガーするリリース ビルドに切り替えるときに発生します。
アプリケーションに移動すると、ログ ファイルが作成されず、イベント ログが更新されないため、ApplicationStart メソッドが呼び出されません。IIS を再起動すると、ApplicationEnd でも同じことが起こります。つまり、ログが作成されません。
デバッグ ビルドでは機能するのに、リリース ビルドでは機能しないのはなぜですか? 私はこれを何時間も蹴っていますが、それは私を狂わせています。
前もって感謝します
**[編集]: 何が起こっているのか 100% はわかりませんが、現在は機能しているようです。ロギングに使用するアセンブリは、ApplicationStart が実行されるまでに読み込まれないのではないかと考えたので、すべてのコードを削除し、代わりにメソッド内にテキスト ファイルを作成しました。見よ、ファイルが作成された!そのため、if(logger != null) 型チェックを追加して、いくつかの診断を出力しようとしましたが、何も書き出されませんでした。そのため、try/catch を試してみて、例外がスローされてもファイルが作成されない場合は、空白のファイル "exception.txt" を書き込みました。ただし、イベント ログと予想されるログ ファイルは生成されました。よくわかりません!**