I know this question has been all over the place but I just can't seem to find a good production deploy example. I've got my proxy correctly configured with the esri routing service and esri geocode service.
My proxy on my production IIS web server has been added and converted to an .NET4.0 integated app pool. I have tested the sevices.arcgisonline.com access redirect and it seems to be working fine:
<serverUrls> <serverUrl url="https://services.arcgisonline.com" matchAll="true"/> <serverUrl url="https://traffic.arcgis.com" username="dcoley_sarco" password="xxxx" matchAll="true"/> <serverUrl url="https://route.arcgis.com" username="dcoley_sarco" password="xxxx" matchAll="true"/>
I have assigned my appID and added my proxy url to my web app config.json:
"httpProxy": { "useProxy": true, "alwaysUseProxy": false, "url": "https://ags2.scgov.net/proxy/proxy.ashx", "rules": [] },
but I still can't seem to access the route service from the directions widget without having to provide login credentials.
What am I missing? Do I need to add the route service to my items in ArcGIS Online? Do I need to add more info in the rules array?
Thanks
David
Solved! Go to Solution.
Hi David,
Not really sure if this issue has been resolved or not. However, here is the steps to make the proxy setting works for "Direction Widget"
1. Under your application folder, open the config.json file, add those rules under line "useProxy": true,
"alwaysUseProxy": false,
"alwaysUseProxy": false,
"rules": [
{
"urlPrefix": "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",
"proxyUrl": "yourproxyurl/proxy.ashx"
},
{
"urlPrefix": "https://logistics.arcgis.com/arcgis/rest/services/World/Utilities/GPServer/GetTravelModes/",
"proxyUrl": "yourproxyurl/proxy.ashx"
}]
2. Make sure all three url that also define the proxy rule in your proxy file.
Hope this can help.
David,
I assume you are using Dev Edition 1.2, correct?
AGOL July release introduces Travel modes in Directions widget, which requires the service below:
http://logistics.arcgis.com/arcgis/rest/services/World/Utilities/GPServer
By default, the travel mode is enabled in WAB 1.2 and, unfortunately, we did not add above service in the widget configuration. As a result, you cannot set it as proxy service and the public access to the Directions widget is broken. You have to provide login credentials.
This has been fixed in WAB embedded in Online and will be fixed in dev edition 1.3. To workaround it, could you create a new app in online and download it locally. Unzip the downloaded file. Copy the directions widget over to replace the one in dev edition. Restart the builder and reconfigure the directions widget.
Thanks,
Jianxia
Thank you Jianxia. Yes I am in Dev Edition 1.2 and until now had been supplying our own NA Server layer. I'll proceed as you suggest and post back my findings here.
Ok so I am a little confused. Are you suggesting to completely overwrite the \\myDevEdtionWab\widgets\Directions\Widget.js file with \\onlineEdtion\widgets\Directions\Widgets.js file? There seem to be alot of differences: 1000+ un-minified lines in online directions js vs 300+ lines in dev
David,
Online version is minified but dev edition is not. Replace the Directions folder from
\\myDevEdtionWab\widgets\Directions
with
\\onlineEdtion\widgets\Directions
Make sure you make a copy of the original folder first.
This workaround is meant for Online Routing service. If you are using NA server from ArcGIS server, you should make directions widget publicly accessible without above changes as the travel modes are not available in ArcGIS Server yet. Could you please confirm?
Thanks,
Jianxia
I'm sorry Jianxia I had a typo in my last reply. The code differences seem significant between the 2 widget js files. I un-minified the online version - there are over 10,000 lines of code in the online version as compared to 300-plus in the developer edition. Is all that additional code required to handle the traffic mode?
Another thought has occurred. Since the developer edition wab directions widget seems to handle travel modes and traffic without any issues as long as credentials are supplied, would it not be possible to simply include the travel modes url like:
"travelModesUrl": "http://logistics.arcgis.com/arcgis/rest/services/World/Utilities/GPServer"
in the directions widget config json and account for logistics url in the proxy and in the apps' http proxy rules?
David,
I am going to bring Qun, the developer on Directions widget, on board to assist you.
Jianxia
That's fine. It just really seemed like a significant code change. At any rate, I'm probably going to submit a support ticket as I am having difficulty understanding how all of the proxy pieces fit together.
Hi David,
Not really sure if this issue has been resolved or not. However, here is the steps to make the proxy setting works for "Direction Widget"
1. Under your application folder, open the config.json file, add those rules under line "useProxy": true,
"alwaysUseProxy": false,
"alwaysUseProxy": false,
"rules": [
{
"urlPrefix": "https://route.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",
"proxyUrl": "yourproxyurl/proxy.ashx"
},
{
"urlPrefix": "https://logistics.arcgis.com/arcgis/rest/services/World/Utilities/GPServer/GetTravelModes/",
"proxyUrl": "yourproxyurl/proxy.ashx"
}]
2. Make sure all three url that also define the proxy rule in your proxy file.
Hope this can help.