Получение сервиса после прохождения подключения к Dynamics 365 CRM - PullRequest
0 голосов
/ 26 сентября 2018

Я публикую свои проблемы, связанные с интеграцией Dynamics 365, и я кратко объясню проблемы, с которыми я сталкиваюсь. Код, который я использую для подключения, выглядит следующим образом:

ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
    CrmServiceClient conn = new CrmServiceClient(new NetworkCredential("<username>", "<Password>", "<domain>"), Microsoft.Xrm.Tooling.Connector.AuthenticationType.IFD, "<url>", "<port>", "<OrgName>");
    _orgService = (IOrganizationService)conn.OrganizationWebProxyClient != null ? (IOrganizationService)conn.OrganizationWebProxyClient : (IOrganizationService)conn.OrganizationServiceProxy;
            // Retrieve the version of Microsoft Dynamics CRM.
RetrieveVersionRequest versionRequest = new RetrieveVersionRequest();
    RetrieveVersionResponse versionResponse = (RetrieveVersionResponse)_orgService.Execute(versionRequest);
    Console.WriteLine("Microsoft Dynamics CRM version {0}.", versionResponse.Version);

Учетные данные не возвращают службузапрос, и это - журнал ошибок, который я получаю.

Inner Exception Level 3 :
 Source  : System
 Method  : Receive
 Date    : 26/09/2018
 Time    : 11:19:51 AM
 Error   : An existing connection was forcibly closed by the remote host
 Stack Trace     : at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 
 offset, Int32 size, SocketFlags socketFlags)
 at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

 Microsoft.Xrm.Tooling.Connector.CrmServiceClient Error: 2 : Unable to Login to Dynamics CRM
 Microsoft.Xrm.Tooling.Connector.CrmServiceClient Error: 2 : OrganizationWebProxyClient is null
 Microsoft.Xrm.Tooling.Connector.CrmServiceClient Error: 2 : OrganizationServiceProxy is null
The application terminated with an error.

Ни одна из примеров программ от Microsoft, которые используют соединитель инструментов, не работает.Я не могу использовать подключение OrganizationClient, поскольку интеграция не будет выполняться с использованием Microsoft.SDK.Client.dll.Я застрял здесь, и мне интересно, если это проблема с размещенным CRM.Любая помощь в этом была бы очень признательна.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Мне редко требовалось устанавливать протокол безопасности, поэтому вы можете попробовать пропустить настройку протокола безопасности и использовать простую строку подключения в конструкторе CrmServiceClient.

Сначала настройте строку подключения в соответствии с вашей версией:

Внутренний IFD до CRM 2016:

var connectionString = "Url=https://contoso.litware.com; Username=someone@litware.com; 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;"

Затем передать его в конструктор:

var svc = new CrmServiceClient(connectionString);

Затем вы можете проверить, готов ли сервис:

if(!svc.IsReady) { throw new Exception("Service not ready");}
0 голосов
/ 26 сентября 2018

Вам необходимо включить AuthType = Office365 в строку подключения.

Замените строку 2 своего кода этими двумя строками ниже.Где

  • {url} - это URL-адрес вашего экземпляра D365
  • {username} - ваше имя пользователя D365 (попробуйте: username или domain \ username)
  • {password} isваш пароль D365
  • {hru} - это URL вашей домашней области ADFS
  • {domain} - ваш домен AD

    string conStr = $ "AuthType = IFD; HomeRealmUri= {хру}; домен = {домен}; URL = {URL}; Имя пользователя = {имя пользователя}; Password = {Передаем} ";Служба CrmServiceClient = новый CrmServiceClient (conStr);

...