Dynamics CRM Online - 在创建联系人时推送数据

时间:2013-10-28 07:29:51

标签: dynamics-crm-2011 dynamics-crm dynamics-crm-online azureservicebus azure-servicebus-queues

在“Dynamics CRM Online”中创建联系人时,我们正在尝试将数据推送到Azure Service Bus Queue。我们通过使用插件注册工具注册它来使用插件实现它。但不知何故,它在保存联系人时抛出错误。 这是我们在插件中实现的代码:

public void Execute(IServiceProvider serviceProvider)
    {
        try
        {                
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
            Entity entity = (Entity)context.InputParameters["Target"];
            if (entity.LogicalName.Equals("account"))
            {
                QueueDescription qd = new QueueDescription("testQ");

                qd.MaxSizeInMegabytes = 5120;
                qd.DefaultMessageTimeToLive = new TimeSpan(0, 1, 0);

                string connectionString =
                    CloudConfigurationManager.GetSetting("Endpoint=sb://test.servicebus.windows.net/;SharedSecretIssuer=owner;SharedSecretValue=secretcode=");

                var namespaceManager =
                    NamespaceManager.CreateFromConnectionString(connectionString);
                if (!namespaceManager.QueueExists("testQ"))
                {
                    namespaceManager.CreateQueue("testQ");
                }

                QueueClient Client =
                    QueueClient.CreateFromConnectionString(connectionString, "testQ");

                BrokeredMessage message = new BrokeredMessage(entity);

                message.Properties["FirstName"] = "ABC";
                message.Properties["LastName"] = "Z";

                Client.Send(message);
            }
        }
        catch (Exception e)
        {
            throw;
        }
}

2 个答案:

答案 0 :(得分:0)

你是如何引用DLL的? 您必须添加本地参考(而不是GAC)。 例如:C:\ Program Files(x86)\ Windows Azure平台AppFabric SDK \ V1.0 \ Assemblies \ NET4.0 \ Microsoft.ServiceBus.dll

此外,将“Copy Local”设置为true,以便程序集与您的插件一起打包。

答案 1 :(得分:0)

您应该查看\SDK\SampleCode\CS\Azure处的Dynamics CRM 2013 SDK示例 如果您尚未更新以假设您已升级到2013年秋季版本,则应查看Dynamics CRM 2011 SDK中的相同位置。它不会像你一样完全正常 - 但你可以使用支持的方法满足你的所有要求。

您需要使用Dynamics CRM中的Azure插件功能。我会添加细节,但它们太长,最好用图片阅读:http://blogs.msdn.com/b/crm/archive/2011/02/18/windows-azure-appfabric-integration-with-microsoft-dynamics-crm-step-by-step.aspx