AnsweredAssumed Answered

Printing Via Proxy

Question asked by IngridD on Sep 24, 2012
Latest reply on Jan 31, 2017 by FloCAD
Hi,

Hoping someone can shed some light on the issue we're facing.

Scenario:

We have two web servers, one out in the DMZ for the public, one internal for staff.
We have two GIS servers which serve these two web servers (they have the same services, used for load balancing).
We have a public (non-secured) folder for public rest services.
We have an internal (secured) folder for staff only rest services which are only available on the internal web server.
We use tokens on the internal web server (not web tier) to authenticate the user so that they can view the internal services.

Issue:

The issue we are having is on the internal server we need to set esri.config.defaults.io.alwaysUseProxy to true so that the user can be authenticated. In doing so the print service returns an error 500. With alwaysUseProxy set to false as on the external server, everything is OK and it will print fine.

However looking at the proxy.ashx (using the dynamic one downloaded from the forum), it's coded to always return a status code of 500 in the ProcessRequest method regardless of what the error actually is. Removing the exception handling so that dotnet will log an event actually returns a 404. Firebug shows everything else loading fine via the proxy, in fact it shows requests to the print service are identical between between proxy and no proxy accept for http://server/arcgisserver/proxy/proxy.ashx? appended to the front of the proxy request.

We're not using HTTPS on any of the servers as the internal server is not accessible via the outside world. This works fine for the secured Map Service, but not the Print Service, which is public.

Our proxy config looks like:

<?xml version="1.0" encoding="utf-8" ?>
<ProxyConfig mustMatch="true">
   <serverUrls>
   <serverUrl url="http://server/arcgis/rest/services/Internal" matchAll="true" dynamicToken="true"></serverUrl>
   </serverUrls>  
</ProxyConfig>


We've tried putting the print server in there, leaving it out, all combinations of options with no success.

We made one change to the proxy.ashx where I've hard coded a full permission user in the tokenService string rather than using individual user names and passwords from the web.config.

string tokenService = "http://server/ArcGIS/tokens/?request=getToken&username=xxxxxx&password=xxxxxx&expiration=30";


We've run out of ideas. Any guidance much appreciated.

Outcomes