Разбор привел к следующему. После обновления нужно использовать другой тип подключения к CRM. Может кому пригодится, бросаю упрощенный код Из визуалки работает.
Код:
using Microsoft.Xrm.Tooling.Connector;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;
using System;
using System.Data;
using System.Linq;
using System.Text;
namespace CRMIntegration
{
public class CRMIntegration
{
private IOrganizationService _orgService;
private string connStr ="AuthType=Office365; Url=url; Username=username; Password=pass;"
public bool Connect()
{
_orgService = connectToCrm();
if (_orgService == null)
return false;
else
return true;
}
private IOrganizationService connectToCrm()
{
try
{
CrmServiceClient conn = new CrmServiceClient(connStr);
_orgService = (IOrganizationService)conn.OrganizationWebProxyClient != null ? (IOrganizationService)conn.OrganizationWebProxyClient : (IOrganizationService)conn.OrganizationServiceProxy;
Error = _orgService == null ? conn.LastCrmError : "";
return _orgService;
}
catch (Exception e)
{
Error = e.Message;
return null;
}
}
}
Возник следующий вопрос. После сборки проекта, пытаюсь присоединить новую dll а АХ. подсоединяю ее в GAC. Компиляция проекта проходить норм. AOS перезагрузил, референсы переподключил. Получил следующую ошибку: Не удалось загрузить файл или сборку "Microsoft.IdentityModel.Clients.ActiveDirectory, Version=2.22.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" либо одну из их зависимостей. Не удается найти указанный файл.
вот код класса в АХ
X++:
class Class1
{
}
public static void main()
{
Class1::run();
}
public static void run()
{
CRMIntegration.CRMIntegration conn;
CRMIntegartionSettings set;
str s;
System.Exception ex;
;
select firstOnly set;
if(set)
{
conn = new CRMIntegration.CRMIntegration(set.URL, set.Username, set.Password);
try
{
if(conn.Connect())
info("ok");
else
{
error("");
s = conn.getLastError();
info(strFmt("%1", s));
}
}
catch (Exception::CLRError)
{
ex = CLRInterop::getLastException();
info(ex.ToString());
}
}
else
error("");
}
Суть в том, что Microsoft.IdentityModel.Clients.ActiveDirectory, Version=2.22.0.0, нет в NuGet Package Manager. Попробовал подключать версии и выше и ниже, все равно просит Version=2.22.0.0,
Гугл мне не сильно помог. Что может быть? Попробовал на нескольких системах, везде такая же беда. Ну или как подключиться из АХ к CRM 365 напрямую?
Это моя первая интеграция AX - CRM может чего не знаю.