English

How To: Configure ArcGIS Server .NET 9.3 with a proxy server to access external resources

Summary

** This is specific to the 9.3 version of ArcGIS Server. **

Instructions provided describe how to configure ArcGIS Server for the .NET Framework to work with a proxy server. This applies to Web mapping applications created in Manager or with applications using the .NET ADF.

Procedure

Many organizations require end users to connect through a proxy server to access public resources on the Internet. When using ArcGIS Server Manager or creating a custom Application using the Web ADF, the proxy server may need to be configured if trying to connect to external resources that need to be accessed by way of a proxy server, such as ArcGIS Online services or other publicly available ArcGIS Servers, ArcIMS Servers, or (OGC) WMS Servers.

At version 9.3, a new file was added named ProxyServer.config that allows the ArcGIS Server Manager to be configured to use a proxy server. The Post Installation does not currently configure this file, so it needs to have its parameters set manually.

  1. Navigate to C:\Program Files\ArcGIS\DotNet\ and open the file ProxyServer.config in a text editor. The file should look like this:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <ProxyServerConfiguration>
    <ProxyServer>
    <Enabled>false</Enabled>
    <ProxyServerUri></ProxyServerUri>
    <ProxyRequiresAuthentication>false</ProxyRequiresAuthentication>
    <Identity Encrypted="false"></Identity>
    <BypassProxyOnLocal>true</BypassProxyOnLocal>
    <BypassAddressList></BypassAddressList>
    </ProxyServer>
    </ProxyServerConfiguration>

  2. To configure ArcGIS Server to work with a proxy server, change the following settings:

    Enabled: Determines whether Web requests by .NET ADF components pass through the proxy server or not.

    Valid values:

    Code:
    <Enabled>TRUE</Enabled>


    or

    Code:
    <Enabled>FALSE</Enabled>

    ProxyServerUri: The URL (Hostname or IP Address) for the proxy server including the port it is running on.

    Example:

    Code:
    <ProxyServerUri>http://proxyserver.something.com:8080</ProxyServerUri>


    or

    Code:
    <ProxyServerUri>http://192.168.1.100:8080</ProxyServerUri>

    ProxyRequiresAuthentication: Whether or not the proxy server is an authenticated proxy (requires a username and password).

    Valid values:

    Code:
    <ProxyRequiresAuthentication>TRUE</ProxyRequiresAuthentication>


    or

    Code:
    <ProxyRequiresAuthentication>FALSE</ProxyRequiresAuthentication>

    Identity: The network credentials (username and password) for the identity used to connect to the proxy.

    Example:

    Code:
    <Identity Encrypted="false">domain\username;password</Identity>


    Warning:
    By default the above identity is set to Encrypted="false", which means the user name and password need to be typed in manually and are read as clear text from the file. If setting Encrypted="true" the following command needs to be run at a command prompt to generate the encrypted password:

    Code:
    C:\Program Files\ArcGIS\DotNet\adfutil -i domain\username;password

    This will pop-up a message with the encrypted string that can then be put in the identity section. For the password to be encrypted when sent across the network, the proxy server also needs to be setup to use Secure Socket Layers (SSL) using the HTTPS protocol.
    BypassProxyOnLocal: Whether Web requests to the local server should bypass the proxy.

    Valid values:

    Code:
    <BypassProxyOnLocal>TRUE</BypassProxyOnLocal>


    or

    Code:
    <BypassProxyOnLocal>FALSE</BypassProxyOnLocal>

    BypassAddressList: A semicolon separated list of URLs to bypass the proxy. If a URL starts with an entry defined in this list, it bypasses the proxy and makes a connection directly.

    Example

    Code:
    <BypassAddressList>http://machine1.something.com;http://machine2.something.com</BypassAddressList>

  3. For the changes to take effect, restart IIS by navigating to the Windows Services panel and clicking restart for the 'IIS Admin Service'.