2012-06-20 96 views
1

我是動態CRM 2011的最新動態,所以也許這個問題很簡單。
我連接拋出一個WCF服務,以CRM的不同情況絲毫的這部分代碼:CRM創建一個CrmConnection的新實例

var settings = new ConnectionStringSettings("Xrm", connectionString); 

var connection = new CrmConnection(settings); 

using (var xrm = new XrmServiceContext(connection)) 
{ 
    //do the magic here 
} 

的「的connectionString」參數,是包含CRM的連接字符串的字符串。

所以,問題是,它第一次連接到我在connectionString中編寫的服務器上,但是,它始終連接到同一個服務器,即使我更改服務器地址,總是嘗試連接到第一個。

調試,我看在

var connection = new CrmConnection(settings); 

而且總是第一個服務器相同的連接....

所以,我需要一種方法來處理這方面,或強制構造總是創建一個新的實例......或類似的東西... 但我找不到方法或操作,那樣做...

在此先感謝!

回答

3

好吧,我發現了一個解決方案,我不知道是否是最佳的解決方案,但它的工作原理...
不使用該

var settings = new ConnectionStringSettings("Xrm", connectionString); 
var connection = new CrmConnection(settings); 

我使用

var connection = CrmConnection.Parse(connectionString); 

這給了我相同的結果,並始終與正確的連接字符串

1

這裏的根本問題是,一些屬性緩存爲每個ConnectionStringSettings。您可以通過給每個實例使用一個唯一的名稱來避免這種情況(例如:Xrm1,Xrm2等)。我不確定這樣的行爲是否明確記錄在SDK中,但我確實遇到過並按照我的說明修復了它。