FQDN Lookup & Thus Stream Services and Other Features Not Working in Azure

5244
5
Jump to solution
03-17-2015 02:48 PM
SteveKehoe
New Contributor

It's been a long couple of days trying to set up an ArcGis for Server development environment up in Azure.  I've been able to get most things to work, however the primary nagging issue I'm still unable to resolve is that of the quirky FQDN resolution of Azure VMs (and ArcGis' dependence on them).

A prior thread here Invalid redirect when logging in to Portal for ArcGIS 10.3 detailed the issue in the context of the Portal WebAdaptor.  In this case, there was a work a round, as you can go in and edit the Web Adaptor setting manually to use the correct externally facing VM.

The issue stems from the fact that Azure uses local FQDN's within each Cloud Service network, which all have the format of  machinename.xx.internal.cloudapp.net.  The real external FQDN is machinename.cloudapp.net - however this is hidden from the perspective of the local machine and is taken care of at some higher level in the network architecture (I am not a network expert unfortunately).

After two attempts of trying to solve this issue with my own manual deployments - I decided to try the ArcGIS Server for Azure Technical Preview 

Unfortunately the issue remains.  Below is a screenshow for the rest API call located at http://d-arcgis.cloudapp.net/arcgis/rest/services/TestStream/StreamServer (which is available over the net)  but the websocket addresses at the bottom are still using the local DNS naming.

If you were to click on ArcGis Javascript and look at the Javascript Console in Chrome, you would see my suspicions confirmed:

Any insights on workarounds or other options for hosting a stream service in Azure?

Thanks,

Steve Kehoe

0 Kudos
1 Solution

Accepted Solutions
NikhilShampur
New Contributor III

Hi Steve,

This is not exposed via the ArcGIS Server Manager.

Please use the Server Administrator API to make this change

ArcGIS Server Administrator API 

View solution in original post

5 Replies
MattJones
New Contributor III

Hi Steve,

I have managed to get it working by going to ArcGIS for Server admin site > system > properties and clicking update and then entering {"WebSocketContextURL": "ws://YOUR-AZURE-MACHINE.cloudapp.net:6180"} and clicking update.

Hope this helps.

Cheers,

Matt

NikhilShampur
New Contributor III

In addition, you will need to add a standalone endpoint for Port 6180 to forward WebSocket traffic from the cloud service load balancer to the virtual machine

0 Kudos
SteveKehoe
New Contributor

Matt,

Thanks so much for your response, this seems to be exactly what I've been looking for.  However, I cannot find system > properties in the admin site.  On the "Services" tab where you land upon signing into the Arcgis Server manager (at http://localhost:6080/arcgis/manager/)  there is a System button:

But when I click that I do not see any properties option.  Just what's pictured below.

I also checked out the Site tab up top but have the following screen:

Which has the System directory listed but I'm not sure this is what you were referring to.  I guess part of my confusion is this was my first time setting up ArcGIS server in general so I'm not as familiar with the configuration layout.  Any help in finding this WebSocket property would be much appreciated.

Thanks again,

Steve

0 Kudos
NikhilShampur
New Contributor III

Hi Steve,

This is not exposed via the ArcGIS Server Manager.

Please use the Server Administrator API to make this change

ArcGIS Server Administrator API 

SteveKehoe
New Contributor

Thanks again Nikhil, this is exactly what I was looking for.

As a tip to others experiencing this same issue, it should also be noted that using this method you must stick with port 6180.  Trying to configure it to something else will not work by just changing this setting.  Matthew Jones is also correct that an external endpoint must be opened (which I had done already through the Azure portal in this case).

-Steve

0 Kudos