3

前回の CRM SDK の CrmServiceClient クラスを使用して、Dynamics 365 環境からデータを取得しようとしています。

CrmServiceClientは、CrmServiceClient の新しいインスタンスが作成および破棄された場合でも、接続情報をキャッシュします! . 私のアプリケーションは別の CRM の URL に接続するため、フラグ「RequireNewInstance=true;」を使用します。キャッシングを避けるために接続文字列で。

このフラグを使用すると、パフォーマンスが大幅に低下します (データの取得に 30 秒以上かかります)。

さまざまなオンライン CRM にアクセスするときに、許容できるパフォーマンスを得るにはどうすればよいでしょうか?

以下に簡単なサンプル コードを示しますが、これに限らず、サービス コールには多くの時間がかかります。

string connectionString="Url=https://myTest.api.crm.dynamics.com/; Username=myUser@myTest.onmicrosoft.com; Password=myPassword; AuthType=Office365;RequireNewInstance=true;";

using (var client = new Microsoft.Xrm.Tooling.Connector.CrmServiceClient(connectionString))
    {
        var orgService = (IOrganizationService)client.OrganizationWebProxyClient ?? client.OrganizationServiceProxy;
        var response = (RetrieveVersionResponse)orgService.Execute(new RetrieveVersionRequest());
    }

注: 以前は、以前の SDK の CrmConnection クラスを使用していました。これは応答時間がはるかに優れていましたが、現在はこれを使用して CRM オンラインにアクセスすることはできません (v 8.1.1 以降)。

4

0 に答える 0