問題
トラフィックを生成して数分待つと、.NET アプリケーションは New Relic にデータを報告しません。また、.NET アプリケーションの New Relic プロファイラー ログもありません。
重要
CoCreateInstance
エラーが発生している Azure Websites ユーザーの場合は、 support.newrelic.comでサポートを受けてください。
解決
New Relicに必要な権限があるかどうかを確認し、問題を解決するには、以下のトラブルシューティングの手順に従ってください。
パーミッションのエラーがプロファイラーのエラーによるものかどうかを確認するため。
アプリケーションのイベントログにこのようなエラーがないか確認してください。
NET Runtime version 4.0.30319.296 - Loading profiler failed during CoCreateInstance. Profiler CLSID: '{71DA0A04-7777-4EC6-9643-7D28B46A8A41}'エラーのCLSIDとNew RelicのCLSIDを比較します。
{71DA0A04-7777-4EC6-9643-7D28B46A8A41} (agent for .NET Framework){36032161-FFC0-4B61-B559-F6C5D41BAE5A} (agent for .NET Core)次のうち1つを行います。
- CLSIDが一致しない場合は、 他のプロファイラーをアンインストールしてください 。
- CLSID が一致する場合は、この手順を続行して、プロファイラー ログで
CoCreateInstance
権限エラーを確認してください。
New Relic アセンブリがw3wp.exe
プロセスに接続されていることを確認するには:
アプリがインストールされているサーバーで、 Microsoft Windows Sysinternals Process Explorerをダウンロードします。
ファイルを解凍し、
procexp.exe
を管理者として実行してください。View > Show Lower Paneを選択し、次にView > Lower Pane View > DLLsを選択します。
あなたのアプリにトラフィックをもたらします。
プロセス リストを更新するには、 View > Refresh Nowを選択します。
上部ペインで、サービスまたは
w3wp
インスタンス (通常はsvchost.exe
プロセスの下にネストされています) を選択します。下部ペインで、次のような名前が
NewRelic
で始まるアセンブリを探します。NewRelic.Agent.Core.dllNewRelic.Profiler.dllNewRelic.Agent.IL.dllNewRelic.ICSharpCode.SharpZipLib.dllNewRelic.Json.dllNewRelic.Log.dllアセンブリが見つからない場合は、 support.newrelic.com でサポートを受けてください。
w3wp.exe
環境の詳細が次のようになっていることを確認します。
COR_ENABLE_PROFILING=1COR_PROFILER={71DA0A04-7777-4EC6-9643-7D28B46A8A41}NEWRELIC_INSTALL_PATH=C:\Program Files\New Relic\.NET Agent\
%ALLUSERSPROFILE%\New Relic\.NET Agent\Logs
でプロファイラーのログを確認してください。
トラブルシューティングしている Web アプリのプロファイラー ログが
no
個あることを確認してください。
シンプルでデフォルトのサイトをインストールしている場合は、他のウェブアプリのプロファイラーログは無視してください。
上記の条件がすべて揃っている場合は、パーミッションエラーが発生しています。以下のいずれかのオプションを使用して、該当するパーミッション・エラーを解決してください。
Available options | Resolve permissions errors |
---|---|
Everyoneグループの権限を設定します。 | Everyoneグループの次のフォルダーの権限を調整して、グループにすべての権限except
|
個々のユーザーの権限を設定します。 | セキュリティ ポリシーでEveryoneグループの権限の調整が許可されていない場合は、個々のユーザーの権限を調整してください。 アプリケーションを実行するユーザーを記録し、各ユーザーの権限を調整します。 |
PowerShellスクリプトを使ってパーミッションを設定します。 | PowerShell スクリプトを使用して bash
32 ビット アプリの場合、パスは次のようになります。 |