2017-09-02 13 views
1

MS CRMで新しい "Service Endpoint"を登録してAzure Service Busにメッセージを送信することができますが、これは...本当に私が探しているもの。上記のメソッドは、シリアル化されたRemoteExecutionContextの送信を終了します。MS CRMプラグイン(サンドボックス)からAzure Service Busにカスタムメッセージを送信

私の場合、サービスバスメッセージに含まれる内容を完全に制御したいと考えています。これは自分のクラスをシリアライズすることを意味します。

WindowsAzure.ServiceBusナゲット(および新しいDLLを作成する)を試しましたが、サンドボックス化されていない設定(社内CRM)でのみ動作しますが、私のソリューションはCRM Online 。 CRM Onlineで同じコードを使用しようとすると、その後TopicClientを作成しようとすると、エラーがスローされます。

System.Security.SecurityException: That assembly does not allow partially trusted callers

は、上記の問題を回避する方法はありますか?

+1

WindowsAzure.ServiceBusにはGitHubのオープンソースがあります。何らかの理由でソースを取得できず、CRMプラグインと一緒にコンパイルするだけですか? –

+0

@PawelGradeckiうーん、私は試してみることができますが、私は何とかこれが問題を解決するのか疑問です。これは、CRMサンドボックスが 'System.Web'を信用しないためです(例えば' UrlEncode'を使用することさえできません)。ところで、問題は、外部DLLのマージではありません。私は正常にサンドボックスモードで実行している私のCRMソリューションで多くの外部DLLを使用しました。 – Shaamaan

答えて

0

CRM Onlineでは、サンドボックスの外でメッセージ変換/処理のロジックを利用できます。いくつかの外部計算が必要になります。既にオンラインでCRMを使用していることを考慮すれば、それは問題ではありません。

あなたが取ることができるアプローチは、を構築したCRMを任意のタイプに変換することです。 Dynamics 365とNServiceBusを統合する方法については、sampleがあります。このアプローチも同様です。私が指していた計算は、サンプルのCRMAdapterEndpointエンドポイントと同等です。エンドポイントはMapperオブジェクトを使用して、JSONシリアライズRemoteExecutionContextをカスタムタイプContactCreateおよびContactUpdateに変換しています。そうすれば、あなたが望むものを達成することができます。

+0

技術的には間違いありませんが、私は解決策を単純化しようとしています。 :/ /メッセージを制御する必要性は、この事実から生じます。私は 'RemoteExecutionContext'を使うことができますが、シリアライズされたモデルクラスを送ることは、後で使うのがずっと簡単です。 – Shaamaan

関連する問題