English

Problem: Unable to connect to a stream service in ArcGIS Server

Description

In some cases, browsers cannot connect to a stream service in ArcGIS Server 10.3 or 10.3.1. This manifests in two ways:

If a user attempts to connect from a stream service's 'subscribe' page, the following error message is returned:

Error:   
"You have unsubscribed"
If a user clicks the 'View in ArcGIS JavaScript' link in a stream service's REST page, the following error message is returned:
 
Error:   
"Cannot reconnect to service"

Cause

ArcGIS Server 10.3 and 10.3.1 are configured to use ArcGIS JavaScript API version 3.11. The stream layer in this version always attempts to use a secure WebSocket connection, if available. Forming this secure connection requires the installation of a valid server certificate. If this certificate is not installed, the client rejects the suspicious server certificate and fails to connect.

Solution or Workaround

Use one of the following four solutions to solve this issue.

  • Install a valid (not self-signed) certificate in ArcGIS Server. This allows the client to form an encrypted connection.
  • Set the Server Security Configuration to HTTP only. This causes the client to form an unencrypted connection since no encrypted WebSocket endpoint is available.
  • Install the ArcGIS Server self-signed certificate in all client browsers that must consume the stream service. This allows the client to form an encrypted connection because it recognizes the certificate from the server.
  • Update the JavaScript API used by the server to version 3.12 or later and access the stream service from a non-encrypted (HTTP) REST endpoint. This forms an unencrypted WebSocket connection.
Note:
Details described in the following Esri Knowledge Base article can be used to update 
the references required for older versions of ArcGIS Server with newer versions of the 
JS API: How To: Install the JavaScript API for use with ArcGIS for Server
Warning:   
Care should be taken to ensure that this is tested properly in a development 
environment before deploying to a production environment.