Install and Configure the ArcGIS Server Polyfill Service
Context:
The AGSPolyfill service provides functionality to versions of ArcGIS Server that do not natively support this service. It mimics ArcGIS Server REST APIs that are missing in ArcGIS Server or server runtimes (for example, ArcMap vs. ArcGIS Pro server runtimes).
Supported Features:
-
Polyfill: Async Apply Edits Support
NOTE: To understand why, we need to look at how the services work behind the scenes. The Edge Service implements “Push to GIS” (i.e., writing a design to the GIS) using a Feature Service operation called applyEdits. This operation allows inserting, updating, and deleting GIS features, objects, and related records. The apply edits operation has both a blocking mode (HTTP calls are blocked until the feature edits are complete) and a non-blocking mode (control returns immediately and feature edits continue asynchronously). Hosted Edge requires the non-blocking variant of the apply edits operation. The back-end structure of web services, called a service runtime, varies based on whether it is published from ArcGIS Pro or ArcMap. ArcGIS Pro-based service runtime provides the non-blocking mode of apply edits. Unfortunately, the ArcMap-based service only provides the blocking mode. The AGSPolyfill service must be enabled to contribute the non-blocking mode of apply edits required by Hosted Edge for GN implementations. -
Polyfill logs can be found in C:\inetpub\wwwroot\AGSPolyfill\logs.
Installation
Before installing the ArcGIS Server Polyfill Service, confirm the following:
-
You have Internet Information Services (IIS) installed on your server.
-
You have ASP.NET Core Runtime 6.0.x Hosing Bundle. If not visit the Microsoft page The .NET Core Hosting Bundle to download and install.
-
You have the feature flag AGSPolyfill set on your tenant. Contact your Schneider Electric implementation team to help set the feature flag (customers are not able to set feature flags themselves).
To install the ArcGIS Server Polyfill Service, follow these steps:
-
Visit the myArcFM page ArcFM Designer XI.
-
Under Downloads, click the ArcFM_AGSPolyfill.msi to download.
-
Double-click the ArcFM_AGSPolyfill.msi to install.
-
After install, navigate to C:\inetpub\wwwroot\AGSPolyfill\ and locate the file appsettings.json.
-
Edit appsettings.json in an application such as Notepad++.
-
There are four configurations to make within the file (they are bolded in the code snippet below):
-
For the URL, ensure it is set to “https://tenancy.arcfmsolution.com”
-
For the OrganizationName, ensure it is set to the tenant name (this is case sensitive)
-
For the ClientID and ClientSecret, you need to generate an API Key, then copy the ClientID and ClientSecret into the .json.
IMPORTANT: When you create the API Key, add the following roles:-
AGSPolyfill.Service
-
Monitoring.Reporter
-
-
For the EndpointSecurity > AllowList, provide the host name of the ArcGIS Server allowed for use by the Polyfill Service.
NOTE: You can use the wildcard character (*) in the host name to specify more than one ArcGIS Server. For example, “*.yourdomain.com”."AllowedHosts": "*", "TenancyService": { "Url": "https://tenancy.arcfmsolution.com", "OrganizationName": "YourTenantName" }, "ServiceAuthentication": { "ClientId": "PasteClientIDHere", "ClientSecret": "PasteClientSecretHere" }, "EndpointSecurity": { "AllowList": [ { "Host": "arcgisserver1.yourdomain.com" }, ] },
IMPORTANT: If you are not using Esri web adaptor and instead, serving directly from ArcGIS Server, you must specify port 6443 as in the example below."EndpointSecurity": { "AllowList": [ { "Host": "arcgisserver1.domain.com", "Port": 6443 } ] },
-
-
Verify in IIS that the service is running.
-
In IIS, go to Services and Applications > Internet Information Service (IIS) Manager.
-
Click your service, then expand it until you see the Default Web Site > AGSPolyfill.
-
On the right-hand side, under Manage Folder, click the service URL.
-
The URL should open in a browser and display “service.metadata” followed by information about the service.
-
-
Copy the AGSPolyfill Service’s URL.
-
In Solution Center > Designer > Client Application > General, paste the service URL in the AGS Polyfill Service URL field.
-
Save your changes.