在“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;
}
}
答案 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