1

我在线上使用Microsoft Dynamics CRM 2016,并尝试使用自定义工作流程活动中的Azure Service Bus relayCRM 2016在线和Azure服务总线中继 - 50200:错误的网关

我创建了一个自定义活动(基于来自CRM SDK的AzureAwareWorkflowActivity)并注册了一个端点(详情如下)。工作流程执行以下列错误结束:

System.ServiceModel.FaultException`1 [Microsoft.Xrm.Sdk.OrganizationServiceFault]:50200:Bad Gateway,Resource:sb://****.servicebus.windows.net /更新*****。 TrackingId:b7681665 - **** SystemTracker:NoSystemTracker,Timestamp:10/10/2016 2:15:45 PM(故障详细信息等于Microsoft.Xrm.Sdk.OrganizationServiceFault)。

你知道如何解决这个问题吗?

工作流活动

namespace Microsoft.Crm.Sdk.Samples 
{ 
    /// <summary> 
    /// This class is able to post the execution context to the Windows Azure 
    /// Service Bus. 
    /// </summary> 
    public class AzureAwareWorkflowActivity : CodeActivity 
    { 
     /// <summary> 
     /// This method is called when the workflow executes. 
     /// </summary> 
     /// <param name="executionContext">The data for the event triggering 
     /// the workflow.</param> 
     protected override void Execute(CodeActivityContext executionContext) 
     { 
      IWorkflowContext context = executionContext.GetExtension<IWorkflowContext>(); 

      IServiceEndpointNotificationService endpointService = 
        executionContext.GetExtension<IServiceEndpointNotificationService>(); 
      endpointService.Execute(ServiceEndpoint.Get(executionContext), context); 
     } 

     /// <summary> 
     /// Enables the service endpoint to be provided when this activity is added as a 
     /// step in a workflow. 
     /// </summary> 
     [RequiredArgument] 
     [ReferenceTarget("serviceendpoint")] 
     [Input("Input id")] 
     public InArgument<EntityReference> ServiceEndpoint { get; set; } 
    } 
} 

端点

Endpoint configuration

回答

0

问题解决 - 的原因是从CRM服务主机处理请求的构成不充分。

事实证明,从CRM发送的消息的大小比允许的大。添加maxReceivedMessageSize是解决方案(2147483647可以更改为更合理的值):

<bindings> 
    <ws2007HttpRelayBinding> 
    <binding name="default" maxReceivedMessageSize="2147483647"> 
    </binding> 
    </ws2007HttpRelayBinding> 
</bindings> 

服务主机是基于Two-way listener example从CRM SDK编写的。不幸的是,该示例不包含此配置。