0

以下のように、アプリケーションで多くの未処理の null 参照例外が発生していました。

System.Web.HttpUnhandledException: タイプ 'System.Web.HttpUnhandledException' の例外がスローされました。---> System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。で

エラー ログの正確な行番号を取得するために、PDB のみのオプションをリリース モードで有効にして、PDB ファイルを運用環境にデプロイしました。

現在、行番号のエラーの説明を取得していますが、行番号は常にエラーが発生する可能性がない最終ブロックを指しています。

プロジェクトのプロパティで、ビルドをリリース モードにすると、最適化コードがチェックされますが、このオプションが原因で行番号が正しくないことがわかりました。

現在、正しい行番号を取得できるように、このオプションをオフにして本番環境にデプロイすることを計画しています。このオプションをチェックせずに本番環境にデプロイした場合、アプリケーションのパフォーマンスに影響があるかどうかを確認したいと考えていました。

これを試した場合、またはそのようなシナリオに遭遇した場合はお知らせください。

4

1 に答える 1

0

はい、確かにパフォーマンスに影響を与える可能性があります。それがオプションの目的です。

基本的に、次の 2 つのオプションがあります。

  1. 最適化にチェックを入れます。これにより、コードのデバッグが容易になりますが、効率が低下する可能性があります。
  2. 最適化をチェックしないでください。この方法では、コードの効率が向上する可能性が高くなりますが、デバッグも難しくなります。

違いは、最適化をオンにすると、コンパイラがより多くの最適化を実行するため、コードが変換されて、行番号が正確でなくなったり、ローカル変数の値を取得できなくなったりする可能性があるためです。

于 2013-01-20T17:42:07.277 に答える