Подключение к Microsoft Dynamics 365, работающему в консольном приложении, но не в веб-приложении

#asp.net-mvc #dynamics-crm #dynamics-crm-365

#asp.net-mvc #dynamics-crm #dynamics-crm-365

Вопрос:

Мне нужно изменить существующий код для подключения к Microsoft Dynamics 365 вместо локальной установки. В настоящее время я использую Microsoft.Xrm.Tooling.Соединитель и мы хотим сохранить это, чтобы влияние на код было как можно ниже.

Итак, я обновил свою строку подключения, чтобы использовать следующий формат: AuthType=clientSecret;url= https: //xxx.dynamics.com;ClientID= xxx; clientSecret = xxx;

Я обновил пакет nuget Microsoft.CrmSdk.XrmTooling.Сборка ядра до последней версии 9.1.0.64. Другие связанные пакеты были обновлены одновременно.

Код, который я использую:

 var client = new CrmServiceClient(connstring);
 

К сожалению, это не работает в моем .net 4.7.1 web.app
Я получаю следующие ошибки:

currentAccessToken = ‘currentAccessToken’ выдало исключение типа ‘System.NullReferenceException’

LastCrmError = «Произошла одна или несколько ошибок. => При отправке запроса произошла ошибка. => Не удается подключиться к удаленному серверу => Попытка подключения завершилась неудачно, поскольку подключенная сторона не ответила должным образом по истечении определенного периода времени или установила fai соединения … »

Я также уже пытался добавить следующую строку, но ошибка остается:

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
 

Чтобы убедиться, что это не связано с моим существующим веб-приложением, я запустил новый проект и включил новое веб-приложение (mvc) и новое консольное приложение. Даже в этом новом проекте веб-приложение не работает, но консольное приложение работает.

Разница, которую я вижу, заключается в том, что для CrmConnectOrgUriActual консольное приложение содержит XRMServices/2011/Organization.svc/web?SDKClientVersion=9.0.45.2156, но в веб-приложении это только XRMServices/2011/Organization.svc/

Возможно, есть что-то дополнительное, что необходимо настроить в веб-приложении? Может ли кто-нибудь помочь мне с этим?

Обновить

Я смог увидеть больше сообщения об ошибке, и в нем упоминалось также следующее сообщение: AuthorityUnable для подключения к CRM: нужен непустой авторитет

Ответ №1:

Я выполнил новый поиск по запросу «Нужны непустые полномочия» на основе полных сведений об ошибке. Одним из результатов была следующая статья: https://www.kashanahmed.com/2020/06/we-were-trying-to-connect-dynamics-365.html

Похоже, что моя проблема была вызвана прокси-сервером нашей компании.

Добавление следующих строк в web.config решило мою проблему

   <system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true">
      <proxy usesystemdefault="True" proxyaddress="http://theproxy" />
    </defaultProxy>
  </system.net>