CRM OnPrem -> Плагин -> Ошибка подключения к внешнему (SOAP) веб-сервису при подключении - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь подключиться из плагина CRM к внешнему SOAP API. Это дает мне ошибку.

Я использую режим изоляции как None. Когда я подключаю тот же API с помощью Консольного приложения, он работает нормально. Я выполнил консольное приложение с сервера, и он подключается и отвечает.

Я немного погуглил, получил некоторые выводы, но, вероятно, мне не хватает возможности понять / определить проблему.

Фрагмент кода ниже

WebRequest request = WebRequest.Create("URL");                  

                    request.Method = "GET";

                    //request.Credentials = new NetworkCredential("USERNAME", "PASSWORD");

                    WebResponse response = request.GetResponse();

                    HttpWebResponse webresponse = (HttpWebResponse)response;
                    if (webresponse.StatusCode == HttpStatusCode.OK)
                    {
                        tracing.Trace($" Resposne is correct i.e OK");

                    }

Когда я отлаживаю с помощью инструмента регистрации плагинов, инструмент ломается и выходит.


Ошибка трассировки:

 A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond


    at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

       at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
       --- End of inner exception stack trace ---
       at System.Net.HttpWebRequest.GetResponse()

1 Ответ

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

Причина, по которой он не работал:

  1. Клиент (OnPrem) использует прокси для подключения к сети.
  2. Когда я запускал консольное приложение на сервереон выполнялся в моем контексте входа в систему (вне CRM), т. е. у пользователя, вошедшего в систему на сервере.
  3. Однако, когда я пытался вызвать веб-сайт из CRM, это может быть из режима изоляции = нет или песочница, службы, которые работаютпод конкретным пользователем не было добавлено прокси к ним.
  4. Например, запуск плагина в режиме изоляции = NONE, т. е. непосредственно в контексте службы APPPool «crmtestappserv» не имеет прокси и даже с использованием простого Internet Explored в контекстеэтого пользователя не смогли открыть google.com, если не были добавлены прокси.

Шаги, предпринятые для решения проблемы: В нашем коде плагина, когда мы делаем HTTP-запрос, мыдобавить прокси к запросу.Это решило нашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...