Proxy blocking Orchestrator

Scenario: Studio fails to connect to robot in Orchestrator

Studio/Robot/Orchestrator Version: 2016.2.6379

Last stable behavior:
Last stable version:
OS Version: Windows 7
Others if Relevant: (workflow, logs, .net version, service pack, etc):

I’m getting a connection error when trying to connect my Studio with a robot in the Orchestrator. I am successful to connect it if a jump over the proxy with a direct line, however, that can’t be a definitive solution.
Is there a way to configure UiPath to make it possible to work through the proxy?
Thank you.

1 Like

Hello,

On the robot machine, open Internet Explorer → go to Internet Options → Connections → LAN settings. Add the proxy server and port (i think that you already done this). You should be able to open Orchestrator server from the robot machine.
Afterwards go to UiPath installation folder and search for UiRobot.exe.config. Open it and go to the bottom of the settings file and add/change following under <configuration> tag

<configuration>
<system.net>  
    <defaultProxy>  
      <proxy  
        usesystemdefault="true"  
        proxyaddress="http://proxy_server:proxy_port"  
        bypassonlocal="true"  
      />  
    </defaultProxy>  
  </system.net>  
</configuration>

In C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming\NuGet\NuGet.config (create this file if it doesn’t exist), add the following section, in the node:

<configuration>
<config>
<add key="http_proxy" value="http://proxy-gw-2012.deskover.local:808" />
</config>
</configuration>

Restart robot service

Let me know if this is working for you.
Thanks,
Cosmin

2 Likes

Hi Cosmin,

I’ve just tried your instruction and it fails when restarting the service. I’m sending you all the code from the first step. I checked restarting the service undoing the changes of the first step, and leaving the changes on the second step and it worked.

So the code of the UiRobot.exe.config file is:

<?xml version="1.0" encoding="utf-8"?>
    <configuration>
     <system.net> 
      <defaultProxy> 
      <proxy
            usesystemdefault="true" 
            proxyaddress="10.5.5.55:8080" 
            bypassonlocal="true" 
          /> 
        </defaultProxy> 
      </system.net>
      <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
          <section name="UiPath.Robot.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
          <section name="Robot.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
      </startup>
      <system.serviceModel>
        <services>
          <service behaviorConfiguration="UiPathRemoteBehaviour" name="UiPath.Broker.UiPathRemote">
            <!--Standard Service-->
            <endpoint address="net.pipe://localhost/UiPath/service/agent" binding="netNamedPipeBinding" bindingConfiguration="UiPathRemoteBinding" name="DefaultStandardEndpoint" contract="UiPath.Models.IUiPathRemoteContract">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
            <endpoint address="net.pipe://localhost/UiPath/service/MEX" binding="mexNamedPipeBinding" contract="IMetadataExchange" />
            <!--Duplex Service-->
            <endpoint address="net.pipe://localhost/UiPath/service/duplex/agent" binding="netNamedPipeBinding" bindingConfiguration="UiPathRemoteBinding" name="DefaultDuplexEndpoint" contract="UiPath.Models.IUiPathRemoteDuplexContract">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
            <endpoint address="net.pipe://localhost/UiPath/service/duplex/MEX" binding="mexNamedPipeBinding" contract="IMetadataExchange" />
            <!-- Enable this for UiPath REST API-->
            <!--<endpoint name="RestEndpoint" address="http://127.0.0.1:8080/UiPath/service/agent" binding="webHttpBinding" bindingConfiguration="WebHttpBinding_IRemoteContract" contract="UiPath.Models.IUiPathRemoteContract" behaviorConfiguration="RestEndpointBehaviour" />
            <endpoint address="http://127.0.0.1:8080/UiPath/service/agent/mex" binding="mexHttpBinding" contract="IMetadataExchange" />-->
          </service>
          <!--Executor Service-->
          <service behaviorConfiguration="ExecutorServiceBehaviour" name="UiPath.Broker.ExecutorService">
            <endpoint address="net.pipe://localhost/UiPath/service/executor" binding="netNamedPipeBinding" name="ExecutorEndpoint" contract="UiPath.Models.IExecutorContract">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
          </service>

          <service name="UiPath.Service.LogReceiverServer">
            <endpoint address="net.pipe://localhost/UiPath/service/logging" binding="netNamedPipeBinding" name="LoggingEndpoint" contract="NLog.LogReceiverService.ILogReceiverServer">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
          </service>
        </services>
        <!--Monitoring webservice-->
        <client>
          <!--On premise Monitoring endpoint-->
          <!--<endpoint name="MonitoringEndpoint" address="" binding="basicHttpBinding" bindingConfiguration="httpMonitor" contract="MonitoringService.IMonitoringService" />-->
          <!--Cloud Monitoring endpoint-->
          <!--<endpoint name="MonitoringEndpoint" address=""
                    binding="basicHttpBinding" contract="MonitoringService.IMonitoringService" bindingConfiguration="MonitoringBindingConfig"/>-->
        </client>
        <bindings>
          <netNamedPipeBinding>
            <binding name="UiPathRemoteBinding" receiveTimeout="00:10:00" sendTimeout="00:10:00" />
          </netNamedPipeBinding>
          <basicHttpBinding>
            <binding name="httpMonitor" maxReceivedMessageSize="1048576" openTimeout="00:10:00" closeTimeout="00:10:00" sendTimeout="00:10:00" receiveTimeout="00:10:00">
              <security mode="None">
                <transport clientCredentialType="None" />
              </security>
            </binding>
          </basicHttpBinding>
          <webHttpBinding>
            <binding name="WebHttpBinding_IRemoteContract" />
          </webHttpBinding>
        </bindings>
        <behaviors>
          <serviceBehaviors>
            <behavior name="UiPathRemoteBehaviour">
              <serviceDebug includeExceptionDetailInFaults="True" />
              <serviceMetadata />
            </behavior>
            <behavior name="ExecutorServiceBehaviour">
              <serviceDebug includeExceptionDetailInFaults="True" />
            </behavior>
          </serviceBehaviors>
          <endpointBehaviors>
            <behavior name="RestEndpointBehaviour">
              <webHttp />
            </behavior>
          </endpointBehaviors>
        </behaviors>
      </system.serviceModel>
      <applicationSettings>
        <UiPath.Robot.Properties.Settings>
          <setting name="HeartbeatTimeout" serializeAs="String">
            <value>30000</value>
          </setting>
        </UiPath.Robot.Properties.Settings>
      </applicationSettings>
      <!--Robot Info-->
      <appSettings>
        <add key="TopicName" value="" />
        <add key="ShouldStop" value="false" />
        <add key="ODataServicesBaseAddress" value="" />
      </appSettings>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="NLog" publicKeyToken="5120e14c03d0593c" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-1.2.15.0" newVersion="1.2.15.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.TeamFoundation.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.TeamFoundation.ProjectManagement" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.TeamFoundation.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.TeamFoundation.WorkItemTracking.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.TeamFoundation.TestManagement.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.TeamFoundation.WorkItemTracking.Proxy" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.TeamFoundation.DeleteTeamProject" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      <system.diagnostics>
        <sources>
          <source name="Execution" switchValue="All">
            <listeners>
              <add name="*" type="NLog.NLogTraceListener, NLog" />
            </listeners>
          </source>
          <source name="Workflow" switchValue="All">
            <listeners>
              <add name="Workflow" type="UiPath.Executor.Logging.ExecutionTraceListener, UiPath.Executor" />
            </listeners>
          </source>
          <source name="Internal" switchValue="All">
            <listeners>
              <add name="*" type="NLog.NLogTraceListener, NLog" />
            </listeners>
          </source>
        </sources>
      </system.diagnostics>
    </configuration>

Please, let me know what am I doing wrong.

Hi,

At first sight config files seems correct, but the fact that robot service is not starting means that config is not correct. Maybe you could have a look in the event viewer to see if any errors and recheck the config file.
In newer versions of UiStudio, the config file already has the proxy section:

image

Thanks,
Cosmin

Hi,

I am able to either connect with Orchestrator through Proxy being added in Config file

or

able to run SOAP request.

Is there a config file which facilitates both connection to Orchestrator and runs SOAP request?

Thanks,
Vyshali C R

I tried this way but still not luck. :frowning:

Help me, I am doing POC with my customer.

try to add this in that nuget.config:

<add key="no_proxy" value="https://orchestratorAddress" />

@irahmat, your proxy requires authentication?

1 Like

Hi @irahmat, how are you? have you fixed your problem? Case yes, could you mark the solution or close this topic? Thanks a lot my friend!

~Diego Turati

Hi, I am good, thanks for asking. I got the solution. just add the orchestrator certifate on my robot terminal.

1 Like

Great @irahmat! I We are Glad you were able to fix that! Just to help the community, could you mark this topic as solved?

Happy Automate :rocket:

~Diego Turati

I am not see solved button because I am not a creator.

1 Like

Hey @irahmat,

Just curious, what do you mean by “add the orchestrator certifate on my robot terminal”?
Is this a community or a enterprise orchestrator?

it’s enterprise.

when u install Orchestrator Enterpirse edition on IIS Manager, there is Self generate Certificate. copy it and import to your local machine or client machine(Robot Terminal)

1 Like

ahh I see, makes sense then. Thanks for the reply!!

thanks

im using community and yeah my proxy requires it and im currently facing the same issue !

Hi @DiegoTurati ,

We’re installed Orchestrator with 3-tier architecture with reverse proxy concept.
Have installed Orchestrator in the App server, but using reverse proxy can’t connect the robot with orchestrator. Please advise…
Help me, I am doing POC with my customer.

Thanks,
Muthu