5

タイトルとして、私は自分のコードまたは基本的なCRM機能によって引き起こされるエラーと、クライアントシステムにインストールされるカスタムプラグインによって投げられたエラーとの違いを知る方法を探しています。プラグインによってMS CRM例外がスローされたかどうかを知る方法はありますか?

私たちが継続的に犠牲になるのは、お客様が自宅で作成したか、別のISVから購入したカスタムサードパーティプラグインです。私たちが接触したCRMエンティティ、または最新のケースでは当社独自のエンティティに登録します。私たちは何かをしようとすると、プラグインはそのことをしようとすると失敗します。最新の例では、プラグインはCRMに入れた後に正しくエンコードしていませんでした。プラグインはエラーを投げ、CRMはそれを私たちに返します。

プラグインが時間を無駄にしないで犯人であることをどのように調べることができますか?これまでのところ、私は、プラグインのスタックトレースをエラーメッセージとして投げ込むことで、ある企業が簡単に言えるようにしています。アズールから自分のCRMとの対話

  • 私はそれ が問題を特定するのにかかる時間を削減するために、プログラムソリューションを探していたカスタムプラグインではなく、私たちのコード :

    わかりやすくするために編集が。

  • 私はエラーログ/処理をスマートにするように改善しようとしています 違いを伝えるのに十分です。
  • 私たちのコードが100%動作しても、同期プラグインが を起動するようにトリガしても、そのプラグインは失敗しますが、CRMから例外が発生します。
  • 私たちがやることはすべて、SDKを使用してプログラム的です。
+0

だから、これはその後、失敗するプラグインを引き起こす、あなたのプラグインは別のプラグインが失敗するいくつかのアクションを実行しようとしたときに起こる障害です?それとも、プラグインが起動する前にプラグインでエラーが発生するのでしょうか? – Daryl

+0

私たちは技術的には「プラグイン」ではありません。お客様のCRMシステムとやりとりするAzureで動作するアプリがあります。私たちがやろうとしていたことを達成したとしても、エラーを返す顧客プラグインでエラーが発生します。 –

+0

それでは、SDKを使用して対話していますか? – Daryl

答えて

2

唯一のことは、CRMトレースを有効にすることです。以下のリンクは、Microsoft Dynamics CRMでこれを行う方法を説明するものです。あなたは簡単に例外を発生させているプラ​​グインを見つけることができます内側にあなたはたとえばこれをチェック、ログファイルをダウンロードすることができます enter image description here

:この絵のようにプラグインによって引き起こされた例外がある

http://support.microsoft.com/kb/907490

+1

申し訳ありませんが、上記のとおりです。私は自動化することができ、私たちのエラーのロギングの一部であるプログラム的なソリューションを探しています。顧客が通過してトレースをオンにすることは、私が削減しようとしている数時間の調査の一部です。 –

1

ログ:

Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: StupidPluginDetail: 
// ... other details 
[StupidPlugin: StupidPlugin.ExamplePlugin] 
[bda9ad85-c4a5-e211-bc00-78e7d162ee67: StupidPlugin.ExamplePlugin: Create of orderclose] 
</TraceText> 
</OrganizationServiceFault> 
+0

私たちは顧客のCRMとSDKを介してプログラム的にやりとりしているので、私たちはそのメッセージを受け取りません。 –

0

これは実稼働環境での使用はお勧めできませんが、テスト環境では非常に有益です。 SDKを使用してCRUD操作が失敗するたびに、すべてのプラグインをプログラムで無効にして、同じ操作を試みることができます。成功した場合は、失敗するまでプラグインを1つずつ有効にします。そうすれば、問題の原因となっているプラ​​グインを特定することも、プラグインでないことを特定することもできます。

1

Detail.TraceTextサービスによって返された例外のプロパティ。私は完全なスタックトレースを取得するために管理していないが、それは物事が間違っていた示すいくつかの情報が返さ:

Mario.CRM.TestOrg.Plugins.ContactPreUpdate

[:

Mario.CRM.TestOrg.Pluginsを5ee31a9e-3558-e211-adeb-00155d014401: Mario.CRM.TestOrg.Plugins。ContactPreUpdate:連絡先の更新]

サンプルコードスニペット

try 
{ 
    //create service proxy and call service 
} 
catch (Exception ex) 
{ 
    Console.WriteLine(((System.ServiceModel.FaultException<Microsoft.Xrm.Sdk.OrganizationServiceFault>)(ex)).Detail.TraceText); 
} 
+0

私はこれを調べなければならないでしょう、それは面白そうです。 –

関連する問題