1. ホーム
  2. c#

[解決済み] デバッグ時のアプリケーションインサイトの無効化

2022-08-15 21:02:50

質問

デバッグ構成を使用しているときに、アプリケーションの洞察を自動的に無効にし、リリース時にのみ有効にするにはどうすればよいですか。

デバッグのためだけに別のインストルメンテーション キーを作成せずにこれを行うことは可能ですか。



私は trackevent ステートメントがコード全体に散らばっているので、デバッグ プリプロセッサ チェックの内部でそれらを囲むことは理想的な解決策ではありません。

私の現在の解決策は Build ActionApplicationInsights.config ファイルから None に変更することで、プロジェクトの出力ディレクトリにコピーされないようにします。しかし、これはアクティブなビルド構成に基づいて自動化できる処理ではありません。

Developer Mode がありますが、手動で変更する必要があります (設定ファイルを条件付きで設定することが可能であれば、instrumentationkey を空にすることで同様に問題が解決されます)。以下を参照してください。 http://apmtips.com/blog/2015/02/02/developer-mode/

参照 http://blogs.msdn.com/b/visualstudioalm/archive/2015/01/07/application-insights-support-for-multiple-environments-stamps-and-app-versions.aspx

どのように解決するのですか?

のないApplicationInsights.configをデプロイしない、デプロイしないという質問で説明したとおり、このような場合は <instrumentationkey>key</instrumentationkey> を付けると、イベントが生成されないようになります。 その後、コードにインスツルメンテーションキーを置くことができます(私の場合、リリース時のみ)。

#if !DEBUG
    Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = "instrumentation key";
#endif

すべての TelemetryClient この呼び出しの後に作成されたすべての は正しいキーを持ち、イベントを追跡するようになるので、すべての場所でコードを変更する必要はありません。 上記のメソッドを呼び出さなかったり、パラメータを空にしたりすると、キーが設定されていないため、イベントがブロックされます。

基本的に ApplicationInsights.config ファイルは、インスツルメンテーションキーを設定するすべてのコードを上書きし、そのコードから <instrumentationkey>key</instrumentationkey> を削除すると、キーを設定するためのコードを使用できるようになります。 ファイルを完全に削除すると、動作しません。

以下はその確認です。 "キーを動的に設定したい場合 - たとえば、アプリケーションの結果を異なるリソースに送信したい場合 - 設定ファイルからキーを省略し、代わりにコードで設定できます "。

参考にしてください。 https://azure.microsoft.com/en-us/documentation/articles/app-insights-configuration-with-applicationinsights-config/#_instrumentationkey