Не удается получить доступ к MS CRM Dynamic 365 с помощью кода C #

У меня проблема при попытке подключиться к MS CRM v9

Я использовал этот код для подключения:

Uri organizationUri = new Uri(OrgUrl);
AuthenticationCredentials authCredentials = new AuthenticationCredentials();
authCredentials.ClientCredentials.UserName.UserName = UserName;
authCredentials.ClientCredentials.UserName.Password = Password;
OrganizationServiceProxy organizationProxy = new OrganizationServiceProxy(organizationUri, null, authCredentials.ClientCredentials, null);
organizationProxy.EnableProxyTypes();`
var _service = organizationProxy;

Это сообщение об исключении

HResult = -2146233079 Сообщение = Метаданные содержат ссылку, которую невозможно разрешить: 'https://myOrg.api.crm4.dynamics.com/XRMServices/2011/Organization.svc?wsdl&sdkversion=9 '. InnerException: HResult = -2146233079 Сообщение = Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка. InnerException: HResult = -2146232800 Сообщение = Невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным узлом. InnerException: ErrorCode = 10054 HResult = -2147467259 Сообщение = Существующее соединение было принудительно закрыто удаленным узлом

Кто-нибудь раньше сталкивался с этой проблемой. PS: этот код раньше запускался в том же проекте


person anmar al-massri    schedule 16.01.2018    source источник


Ответы (2)


Похоже, вам нужно обновить ссылки SDK на новые ссылки SDK 9.0. Для SDK больше нет единой загрузки, вместо этого вам нужно использовать NuGet (https://blogs.msdn.microsoft.com/crm/2017/11/01/whats-new-for-customer-Engagement-developer-documentation-in-version-9-0/)

Больше не нужно загружать монолитный SDK. Вероятно, самым большим изменением является то, что мы больше не предоставляем единый пакет для загрузки для всей документации, инструментов и примеров кода. В дальнейшем вместо того, чтобы отправлять одну упаковку со всем в ней, мы предложим подход «а ля карт», чтобы вы могли загружать отдельные вещи по мере необходимости.

Получите необходимые сборки и инструменты. Сборки и инструменты SDK будут распространяться только через NuGet. Мы предоставим сценарий, который позволит вам загружать сборки и инструменты из NuGet. См. Раздел «Где найти пакеты SDK NuGet» и «Загрузить инструменты с NuGet».

Самостоятельное создание контента в автономном режиме. Новый сайт docs.microsoft.com позволит вам загрузить PDF-файл для любой из наших областей контента, чтобы вы могли читать и искать документацию в автономном режиме.

Доступность примеров кода. Все наши образцы кода будут доступны на msdn.microsoft.com или на GitHub. Сайт code.msdn.microsoft.com предназначен для примеров кода и обеспечивает удобство работы, а также предоставляет более точные показатели использования.

Загружайте только те части, которые вам нужны. Различные ресурсы, которые мы включили в пакет для загрузки, будут доступны для отдельной загрузки. Таким образом, если необходимо обновить один из ресурсов, мы можем просто обновить его, не выпуская весь пакет SDK.

https://www.nuget.org/profiles/crmsdk содержит список всех SDK. DLL, которые могут вам понадобиться. В частности, https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.CoreAssembly/ включает коннектор, который, я думаю, вам действительно нужен.

Вы можете добавить его в свой проект, используя следующую команду в консоли NuGet

Install-Package Microsoft.CrmSdk.XrmTooling.CoreAssembly -Version 9.0.0.7

Если вам не нужна конкретная версия, вы можете просто использовать

Install-Package Microsoft.CrmSdk.XrmTooling.CoreAssembly
person Mauro    schedule 16.01.2018
comment
Уточнение: есть ли веская причина явно указывать на версию пакета Nuget? - person Basic; 16.01.2018
comment
Спасибо за повтор, Мауро, я уже использую эту версию 9.0.0.7, но проблема все еще существует - person anmar al-massri; 16.01.2018
comment
@Basic nope - это просто пример с конкретной страницы :) - person Mauro; 16.01.2018

Обычно я использую CrmServiceClient в Xrm.Tooling.Connector пространство имен со строкой подключения.

var svc = new CrmServiceClient(connectionString);

Обратите внимание, что CrmServiceClient имеет логическое свойство с именем IsReady, что позволяет проверить его состояние.

Вот примеры строк подключения для различных типов среды. Это жестко запрограммированные примеры, но вы также можете добавить их в App.Config, как показано в моем ответе здесь.

CRM 2016 и Dynamics 365 Online:

var connectionString = "Url=https://dev26.crm.dynamics.com; [email protected]; Password=Pass; AuthType=Office365";

Локально со встроенной безопасностью:

var connectionString="Url=http://myserver/AdventureWorksCycle;";

Локально с учетными данными:

var connectionString="Url=http://myserver/AdventureWorksCycle; Domain=mydomain; Username=administrator; Password=password; AuthType=AD;";

Локальная IFD до CRM 2016:

var connectionString="Url=https://contoso.litware.com; [email protected]; Password=password; AuthType=IFD;";

Локальный IFD для CRM 2016 и более поздних версий (v8.0 +)

var connectionString="ServiceUri=https://contoso.litware.com/contoso; Domain=contoso; Username=contoso\administrator; Password=password; AuthType=IFD; LoginPrompt=Never;";`
person Aron    schedule 16.01.2018