0

當在「Dynamics CRM Online」中創建聯繫人時,我們試圖將數據推送到Azure服務總線隊列。我們已經通過使用插件註冊到插件註冊工具來實現它。但不知何故,它保存聯繫人時拋出一個錯誤。 這裏是我們的插件,已經實現了代碼:Dynamics CRM Online - 創建聯繫人時推送數據

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

**業務流程錯誤** 插件(Execute)的意外異常:Microsoft.Crm。 Sdk.Samples.Account:System.IO.FileNotFoundException:無法加載文件或程序集「Microsoft.ServiceBus,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35」或其某個依賴項。該系統找不到指定的文件。 – user2926841

+0

您是否正在使用像ILMerge這樣的工具來合併您所引用的所有dll? –

回答

0

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

另外,將「Copy Local」設置爲true,以便程序集與您的插件一起打包。

+0

我已經通過NuGet添加了服務總線DLL。 我曾嘗試添加appfabric servicebus dll。它不包含CreateFromConnectionString方法。 – user2926841

+0

從這裏下載SDK並手動添加參考。 http://www.windowsazure.com/en-us/downloads/?fb=en-us NuGet軟件包可能缺少組件。 –

+0

上面的鏈接sdk不包含servicebus.dll。我們已經嘗試過了。是否有任何其他解決方案將數據從CRM Online推出? – user2926841

0

你應該看看Dynamics CRM 2013 SDK例子在\SDK\SampleCode\CS\Azure 如果你還沒有被更新,將假設你已經升級到'13秋季發佈,你應該看看在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

相關問題