0

現在、バックエンド システムのアーキテクチャを変更しており、OrganizationServiceProxy.EnableProxyTypes メソッドを使用して、ワークフローの CodeActivities で使用するプロキシ タイプを有効にする必要があることを発見しました。

ただし、このメソッド呼び出しを含めると、最終的に失敗する前に、ワークフローの実行が非常に遅くなります。

メソッドを呼び出すために使用するコードは次のとおりです。

    var service = serviceFactory.CreateOrganizationService(context.UserId);
    if (service is OrganizationService)
    {
        tracingService.Trace("Enabling proxy types");
        ((OrganizationServiceProxy)((OrganizationService)service).InnerService).EnableProxyTypes(assembly);
        tracingService.Trace("Proxy types enabled");
    }

何か案は?

ありがとう

4

1 に答える 1

0

アセンブリをパラメーターとして EnableProxyTypes に渡す必要はありませんでした。アセンブリを渡さずに試しましたか?

また、Behaviors コレクションに追加してプロキシ タイプを有効にする別の方法もあります。次に例を示します。

public static IOrganizationService GetOrganizationService(Guid userId)
{
    ClientCredentials credentials = new ClientCredentials();
    credentials.Windows.ClientCredential = System.Net.CredentialCache.DefaultNetworkCredentials;
    Uri homeRealmUri = null;

    using (OrganizationServiceProxy _serviceProxy = new OrganizationServiceProxy(new Uri(GetOrganizationUri()),
        homeRealmUri, credentials, null))
    {
        _serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
        _serviceProxy.CallerId = userId;

        IOrganizationService _service = (IOrganizationService)_serviceProxy;
        return _service;
    }
}
于 2016-04-18T19:08:47.440 に答える