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

Dynamics crm 2011 Dynamics CRM Online-创建联系人时推送数据,dynamics-crm-2011,dynamics-crm,dynamics-crm-online,azureservicebus,azure-servicebus-queues,Dynamics Crm 2011,Dynamics Crm,Dynamics Crm Online,Azureservicebus,Azure Servicebus Queues,在“Dynamics CRM Online”中创建联系人时,我们正在尝试将数据推送到Azure服务总线队列。我们使用插件注册工具注册它,从而实现了它。但不知怎的,它在保存联系人时抛出了一个错误。 以下是我们在插件中实现的代码: public void Execute(IServiceProvider serviceProvider) { try { IPluginExecutionContext co

在“Dynamics CRM Online”中创建联系人时,我们正在尝试将数据推送到Azure服务总线队列。我们使用插件注册工具注册它,从而实现了它。但不知怎的,它在保存联系人时抛出了一个错误。 以下是我们在插件中实现的代码:

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;
        }
}

如何引用DLL? 必须添加本地引用(而不是GAC)。 例如:C:\ProgramFiles(x86)\Windows Azure平台AppFabric SDK\V1.0\Assemblys\NET4.0\Microsoft.ServiceBus.dll

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

您应该查看
\SDK\SampleCode\CS\Azure中的示例
如果你还没有更新到假定你已经升级到了2013年秋季的版本,你应该在相同的位置查看。它不会完全按照您现有的方式工作-但是您可以使用支持的方法满足所有需求


您需要使用Dynamics CRM中的Azure插件功能。我想添加详细信息,但它们太长,最好与图片一起阅读:

请添加错误消息Business Process error Outsigned exception from plug-in(执行):Microsoft.Crm.Sdk.Samples.Account:System.IO.FileNotFoundException:无法加载文件或程序集'Microsoft.ServiceBus,Version=2.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。系统找不到指定的文件。是否使用ILMerge之类的工具合并所有引用的DLL?是。我们试过了,但没有成功!我通过NuGet添加了服务总线dll。我已尝试添加appfabric servicebus dll。它不包含CreateFromConnectionString方法。请从此处下载SDK并手动添加引用。NuGet包可能缺少程序集。上面的链接sdk不包含servicebus.dll。我们已经试过了。是否有其他解决方案将数据从CRM Online中推出?对不起,您应该能够在App Fabric SDK中找到dll