0

我们目前正在更改后端系统的体系结构,并且我们发现我们需要使用 OrganizationServiceProxy.EnableProxyTypes 方法启用代理类型以在 CodeActivities for Workflows 中使用。

但是,每当我包含此方法调用时,它都会使工作流在最终失败之前运行得非常慢。

这是我们用来调用该方法的代码:

    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 回答