• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

欠落している.NET asyncのメトリクス

問題

WebApiHttpClientSqlCommandSqlDataReaderNpgsqlCommand 、またはカスタムインストゥルメンテーションの非同期トランザクションは表示されません。 この問題は通常、.NET フレームワーク 4.0 以前でNew Relic の .NET エージェントを使用して作成され、その後 .NET フレームワーク 4.5 以降に移行されたアプリで発生します。

解決

アプリのアップグレードパイプラインの設定

以下を使用している場合は、特定のappSettingまたはsystem.web設定が必要です。

  • WebApi1またはWebApi2
  • HttpClientSqlCommandSqlDataReader 、または NpgsqlCommand
  • 非同期関連のカスタムトランザクションまたはカスタムインストルメンテーション
  • New Relic .NET エージェントのバージョン 5.11.53.0 以上
  • アプリのターゲットとなる.NET Framework 4.5以上

これらの条件に当てはまる場合は、.NET 4.5で導入されたアップグレードされたリクエスト処理パイプラインをアプリケーションで使用する必要があります。

アップグレードされたパイプラインを使用するには、 web.configに次のいずれかの設定が含まれていることを確認してください。どちらの設定も表示されない場合は、いずれかを追加します。

おすすめです。新しいパイプラインとの互換性の確認

オプション:実行時に非同期コードの追加チェックを行うよう、.NETフレームワークに指示することができます。これらのチェックは、レガシー ASP パイプラインによって隠されている可能性のある非同期コードの一般的な問題を検出します。

問題なくパスした場合は、アプリが新しいパイプラインを正しく処理していると確信できます。詳しくは、 Microsoftの設定ドキュメント をご覧ください。

追加のチェックを適用するには、次をweb.configに追加します:

<configuration>
<appSettings>
<add key="aspnet:AllowAsyncDuringSyncStages" value="false" />
</appSettings>
<configuration>

原因

レガシーの統合パイプラインが存在する場合、非同期インスツルメンテーションが無効になります。.NET 4.5以前では、統合されたパイプラインがデッドロックを引き起こす可能性がありました。この.NET Frameworkのバグの詳細については、以下を参照してください。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.