AnsweredAssumed Answered

Trouble deploying ArcGIS Web App Builder application on my own server

Question asked by MCarey73 on May 20, 2015
Latest reply on Jun 11, 2015 by PATERM

Having trouble deploying a web mapping application that I've authored using ArcGIS Web App Builder.

 

I'm deploying it on a server that's accessible inside my organization only. It serves up a *secured* web map from our ArcGIS

Online organization. (I wish all the data could just be hosted in ArcGIS Server but the Web App Builder seems to be only

geared to serving up a Web Map from AGOL).

 

I authored the app using Web App Builder running on my own PC, then downloaded the files and placed them on my org's server in

C:\inetpub\wwwroot.

 

Following the readme document, I'm using the .NET proxy that I downloaded a while ago from github which seems to work fine in

other circumstances such as serving up a secured feature layer from AGOL in a locally-hosted Javascript API web app.

 

I modified my application's config.json file as follows:

 

"httpProxy":{"useProxy":true,"alwaysUseProxy":false,"url":"http://<mylocalserver>/proxy/proxy.ashx","rules":[{"urlPrefix":

"<myorg>.maps.arcgis.com/","proxyUrl": "http://<mylocalserver>/proxy/proxy.ashx"}]}

 

 

Then I added the locally hosted app in our AGOL portal, using the URL http://<mylocalserver's full name inc. domain>/<the app

name>

 

Then I registered it so that it has an App Id and an App Secret. I was stumped on what to enter for Redirect URI's so I tried

a bunch: http://<mylocalserver>:8000, http://<myorg>.maps.arcgis.com, https://<myorg>.maps.arcgis.com, and just for fun the

url of the oath-callback.html file that resides within the application on the local server.

 

I copied and pasted the AppID into the app's config.json file.

 

Also in my proxy.config file, I have this, which worked for me in the other context but admittedly is not in the application deployment instructions (b/c otherwise how does AGOL establish the credentials of the locally-hosted application when it wants access to the data?)

 

serverUrl url="http://<myorg>.maps.arcgis.com" clientId="<the App ID>" clientSecret="<the app Secret"> matchAll="true"

rateLimit="600" rateLimitPeriod="60"/>

serverUrl url="https://<myorg>.maps.arcgis.com" clientId="<the App ID>" clientSecret="<the app Secret"> matchAll="true"

rateLimit="600" rateLimitPeriod="60"/>

 

 

Now, finally, when I try to view the app in Chrome at: http://<mylocalserver>/<the app name>/  I get the blue background from

the web mapping app and a progress bar that goes up, but then I get "This webpage is not available" and

"ERR_CONNECTION_REFUSED", and the URL changes to https://<mylocalserver>/<the app name>/

 

The Chrome developer tools don't tell me much, but there's something in the proxy log file on the server which seems to be the

source of at least one the problems:

 

******************************************************************

 

w3wp.exe Information: 0 : 2015-05-20 12:34:56 https://<myorg>.maps.arcgis.com/sharing/portals/self?

f=json&dojo.preventCache=1432139695935&callback=dojo.io.script.jsonp_dojoIoScript1._jsonpCallback

w3wp.exe Information: 0 : 2015-05-20 12:34:56 Matching credentials found in configuration file. OAuth 2.0 mode: True

w3wp.exe Information: 0 : 2015-05-20 12:34:56 Service is secured by https://www.arcgis.com/sharing/oauth2/: getting new

  1. token...

w3wp.exe Information: 0 : 2015-05-20 12:34:56  Token obtained: Yj4mRmei1CTLD<I'm shortening this!

>xzlVLaI9IVdMWUk4pVlC17krnIWmuEN3WZNL-4w..

w3wp.exe Information: 0 : 2015-05-20 12:34:56  Exchanging Portal token for Server-specific token for

https://<myorg>.maps.arcgis.com...

w3wp.exe Error: 0 : 2015-05-20 12:34:56  Token cannot be obtained: {"error":{"code":400,"message":"Unable to generate

token","details":["Unable to generate token for this server"]}}

 

************************************************************************************

 

Something very similar to this repeats 5 more times.

 

 

Any thoughts/pointers on this please? Can't help thinking the Redirect URI's or confusion between http:// and https:// might be the

culprit but it could be something fundamental that I'm just not getting.

 

Thx!

Outcomes