CRM OnPrem->插件->连接到外部(SOAP)Webservice错误

时间:2018-09-17 07:08:35

标签: dynamics-crm crm microsoft-dynamics on-prem

我正在尝试从CRM插件连接到外部SOAP API。它给了我错误。

我正在使用“隔离模式”作为“无”。 当我使用Console APP连接相同的API时,效果很好。我从服务器执行了控制台APP,它连接并响应良好。

我在Google上找到了一些线索,但可能我缺乏理解/查明问题的能力。

下面的代码段

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 :(得分:0)

原因不起作用:

  1. 客户(OnPrem)使用代理连接到Web。
  2. 当我在服务器上运行Console App时,它正在我的登录上下文(CRM外部)(即登录服务器的用户)上运行。
  3. 但是,当我尝试从CRM呼叫网站时,可能是来自“隔离模式=无”或“沙箱”,在特定用户下运行的服务未添加代理。
  4. 例如在隔离模式= NONE(即直接在APPPool服务“ crmtestappserv”)下运行插件的示例没有代理,甚至在同一用户的上下文下仅使用Internet Explore都无法打开google.com,除非存在代理已添加。

解决此问题的步骤:在我们的插件代码中,当我们发出HTTP请求时,便向该请求添加了代理。这解决了我们的问题。