非同期のメトリクスが見つからない
非同期のメトリクスが見つからない

非同期のメトリクスが見つからない

問題点

WebApi、HttpClient、SqlCommand、SqlDataReader、NpgsqlCommand用の非同期トランザクションが表示されない。この問題は.NET Framework 4.0以前のバージョンで作成された後、.NET Framework 4.5以降に移行したアプリに特定される共通の問題です。

解決方法

以下をご利用の場合、特定の『appSetting』または 『system.web』設定が必要となります。

  • WebApi1、WebApi2またはHttpClient、SqlCommand、SqlDataReaderまたはNpgsqlCommandの「非同期」メソッド、または非同期に関連するカスタムトランザクション / インストルメンテーション
  • New Relic .NET agent5.11.53.0以降のバージョン
  • 上記3つの条件が当てはまる場合は、アプリの対象が.NET Framework 4.5に導入されたパイプライン処理の更新されたリクエストを利用していることを確認する必要があります。

更新されたパイプラインを使用している場合、web.configに以下のいずれかの設定が存在することを確認します。いずれの設定も存在しない場合はいずれかを追加してください。

推奨: .NETに新しいパイプラインを使用させる
以下のようにして .NETに新しいASPリクエストの処理パイプラインを使用させます。
対象のフレームワークのバージョンの特定
対象とする .NETフレームワークのバージョンを特定します。これにより競合の問題を発生させている可能性のある実行時間が厳密に確認されますので、できれば、.NETに新しいパイプラインを使用するよう指示する必要があります。
.NET Frameworkの指定されるバージョンがマシンにインストールされており、バージョンは 4.5.2以降であることが必要です。

推奨:新しいパイプラインとの互換性の確認

オプションとして、.NET フレームワークに、実行中に非同期コードを追加確認をさせることができます。この確認により、従来のASPパイプラインにより覆われているASP非同期コード共通の問題が把握できます。お使いのアプリに問題が発生しない場合、アプリは新パイプラインを正常に処理していることが確認できます。詳しくはMicrosoftの構成の文書をご覧ください。
追加確認を補強するにはweb.configに以下を追加します。

 原因

従来の統合されたパイプラインが存在する場合、非同期インストルメンテーションは無効化されます。.NET 4.5以前のバージョンでは統合されたパイプラインに問題が発生する可能性があります。

関連情報

追加のドキュメンテーションリソースは次のとおりです。

  • 待機後にHttpContext.Currentが nullになる理由
  • <httpRuntime targetFrameworkについて> 

New Relic オンライン テクニカル コミュニティの .NET監視に関するディスカッションにぜひご参加ください! テクニカルコミュニティは、 New Relicツールセットについて議論し、トラブルシューティングを行うための公開プラットフォームです。

PROプランのすべての機能を
14日間無料でお試し

新規無料登録いただくとPROプランのすべての機能を
14日間無料でお試しいただけます。
クレジットカードなど決済情報の登録は不要です。

各プランの詳細はこちらからご確認ください。