2017-02-07 5 views
0

プラグインとAzure Application Insightsを使用してカスタムイベントを追跡しようとしています。プラグインをビルドすると、私はMSBuild.ILMerge.Taskを使用して、プラグインアセンブリでApplication.Insights.dllをマージします。ここで私 がマージを行うには、その後の手順は以下のとおりです。 http://dynamicscrmcoe.com/il-merge-dynamics-crm-plugins/Dynamics CRM 365(オンライン)プラグインの例外Azure Application Insightsを使用したEnvironmentPermission

私が持っている問題は、私はテレメトリクライアントをインスタンス化しようとすることです:

Request for the permission of type System.Security.Permissions.EnvironmentPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. 

var telemetryClient = new TelemetryClient(); 

私はこのエラーを取得します

セキュリティ属性を使用してアクセス許可を付与しようとしました:

[EnvironmentPermission(SecurityAction.Assert, Unrestricted = true)] 

とも

[PermissionSet(SecurityAction.Assert, Name = "FullTrust")] 

を試してみましたが、しかし、何も動作していないようにみえます。任意のアイデアやアドバイスをいただければ幸いです。 ありがとうございます。

答えて

1

短い答えはできません。現在のApplication Insightsのリリースでは、CRMサンドボックスプラグインに適用されるコードの制限はサポートされていません。

これは報告され、問題として解決されました:https://github.com/Microsoft/ApplicationInsights-dotnet/issues/416

このコードをプルダウンして解決しようとしていた問題、つまり特定のマシン情報の呼び出しを解決しました。ファイルシステムの読み込みを試みることができるため、エラーは発生しますが、それはできません。

Application Insightsは、アプリケーションのベースレベルで実装されるように設計されています(通常はWebアプリケーションとは限りません)。カスタムプラグインやワークフローアクティビティを作成する際に記述するコードはそのコードではありません。これはベースレベルのアプリケーションへのプラグインであり、ベースレベルのアプリケーションはアプリケーションのインサイトを実装していません。

つまり、サンドボックスプラグインでは、Application Insightsはあまり必要ありません。 Dynamics CRMは、高度な検索で表示できるサンドボックスプラグインのプラグイン実行統計を既に追跡しています。詳細なトレースのために

Advanced Find Search for Plugin Statistics

、特に例外トレースのために、あなたはプラグイン内ITracingServiceを持っています。

0

プラグインからApplication Insightをトリガーしたい場合は、休憩サービスを利用する方法があります。すべてのApplication Insightロジックを記述してサービスを休止し、Azureに展開します。次に、プラグインコードを使用して、残りのサービスをトリガーし、必要なパラメーターを渡します。

var uri = new Uri("learningportalservices.azurewebsites.net/.../success"); 
var request = WebRequest.Create(uri); 
request.Method = WebRequestMethods.Http.Get; 
request.ContentType = "application/json"; 
using (var response = request.GetResponse()) 
{ 
using (var reader = new StreamReader(response.GetResponseStream())) 
{ 
string result = reader.ReadToEnd(); 
} 
} 

おかげで、 ディリップ

+0

私たちは、概念実証としてあることを試してみましたが、それは動作しますが、それは、(様々な理由)建築家によって承認されていませんでした。マイクロソフトでは、アプリの洞察のための読み取り専用のサービスを提供しています。今のところこれは保留になっています。 – noobie

関連する問題