2012-06-20 4 views
1

Я окончательно новый в Dynamic 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, но затем он всегда подключается к одному и тому же серверу, я имею в виду, даже если я меняю адрес сервера, всегда стараюсь для подключения к первому.

Debugging, я смотрю в

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, но я, конечно, столкнулся с ним и исправил его, как я указал.

Смежные вопросы