0

私が頻繁に遭遇する問題は、ログで次のようなメッセージを含む例外を見つけることです。

Process: Ems.MailServer.Service    Exception occurred at line: 0    Exception: Object reference not set to an instance of an object.

もちろん、デバッグ環境では、問題の原因を突き止めることができますが、ログに依存する場合、エラーで報告された行番号はありません。常に「行で例外が発生しました: 0」です。

行番号または null 変数の名前を示す情報をログに記録する方法はありますか?

(「nullをチェックする必要があります」と答えないでください。もちろん、null変数が予想される場合はチェックしますが、すべての変数をチェックするのは現実的ではありません)

アドバイスをいただければ幸いです。

4

3 に答える 3

5

製品をその pdb ファイルと一緒にデプロイする必要があります。このようにして、行番号情報を正しく取得できます。

于 2013-09-12T11:15:27.547 に答える
3

例外を使用してスタック トレースをログアウトします (これは正直なところ、標準的な方法です)。StackTraceこれは、例外オブジェクトのプロパティとして見つけることができます。

行番号が必要な場合は、この投稿をチェックしてください: Display lines number in Stack Trace for .NET assembly in Release mode。つまり、アプリケーション/DLL を使用して PDB を展開する必要があります。

于 2013-09-12T11:17:48.397 に答える