4

「System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。Webアプリケーションのリリースビルドを起動するとエラーが発生します。詳細情報を取得するためにデバッグビルドを実行するように指示されますが、デバッグビルドを起動しても、エラーは発生しなくなりました。デバッグビルドのほとんどのエラーで与えられる行番号の助けがなければ、この漠然としたエラーの原因を特定することは(私が知っていることから)非常に困難です。

この例外の原因を絞り込むために、誰かが私を正しい方向に向けることができますか?

ありがとう。

4

2 に答える 2

2

問題の迅速な解決策として(コードを書き直す時間がない場合)、アプリケーションをリリースしたマシンのイベントログを参照してください。いくつかのdllが欠落している可能性が高いです。

長期的な解決策として、アプリケーションにいくつかのロギング機能(Enterprise Library、log4netなどまたは独自のロガー)を追加することから始めることができると思います。完全なスタックトレースを印刷することは、特にリリースバージョンに.pdbファイルを含める場合に非常に役立つ情報源です。これにより、実行されたコードは、どの行が例外をスローしたかを正確に知ることができます。

これがお役に立てば幸いです、Piotr

于 2012-10-06T06:31:39.690 に答える
2

リリースモードでビルドした場合でも、スタックトレースでファイル名と行番号を取得することができます。リリースモードでの.NETアセンブリのスタックトレースの行番号の表示および.NETリリースモードビルドでスタックトレース情報を利用できますか?を参照してください。例えば。

一般に、デバッグモードとリリースモードで異なるプログラム動作を導入することは避けるべきだと思います(ただし、意図的に導入しなかったのではないでしょうか?)。

于 2012-10-06T08:19:51.990 に答える