You can extend map and image services published from ArcGIS Pro with server object extensions (SOEs) and server object interceptors (SOIs). SOEs allow you to create service operations to extend the base service functionality, while SOIs allow you to intercept requests and responses for built-in operations of a service.
SOEs and SOIs can be developed using ArcGIS Enterprise SDK and are both encapsulated in .soe files. They can be added to your organization and managed from ArcGIS Enterprise Manager. Once added to your organization, SOEs and SOIs can be enabled on map and image services when publishing from ArcGIS Pro or on map image layers and imagery layers from the item details page.
Add an extension
To add an extension to an organization, you need the .soe file that was created by the extension developer. The file can contain one or many extensions.
Once you have the file, perform the following steps:
-
Sign in to ArcGIS Enterprise Manager as an administrator.
Note:
Organizations can enable publishers to deploy extensions. See Change geoprocessing service and service extension publishing privileges for more information.
- Click the Extensions button in the sidebar.
The extensions page appears.
- Click Add extension.
- Click Choose file and choose an .soe file to add to your organization.
- Click Add extension.
The .soe file is added to the organization.
Now that you have added the extension to your organization, you must enable the SOE or SOI capability on the desired map or image service.
Enable SOEs
Once an SOE has been added to your organization, you can enable the capability on a map or image service. SOEs can be enabled on imagery layers and map image layers from the item details page.
To enable an SOE from a layer's item details page, complete the following steps:
- Sign in to an organization as an item owner with publishing privileges or an administrator.
- Open the item details page for the layer.
- Click Settings.
- Scroll to the layer's section and expand the Extensions heading.
- Expand the Server object extensions (SOEs) heading.
A list of SOEs that have been added to your organization appears.
- Turn on the toggle button next to the SOE that you want to enable on the service.
- Expand the heading for the SOE you have enabled.
Operations and properties for the SOE appear. These were optionally created by the extension developer and give you a finer degree of control over what users can do with SOEs.
- If applicable, select the operations you want to allow.
- If applicable, edit the available properties.
- Click Save to apply changes.
The SOE is now enabled on the service. To disable, turn off the toggle button next to the SOE and click Save.
Enable SOIs
Once an SOI has been added to your organization, you can enable the capability on a map or image service. SOIs can be enabled on imagery layers or map image layers from the item details page.
Enabling multiple SOIs is referred to as chaining. When chaining, you must specify the order in which the SOIs will be run in the service.
To enable an SOI from a layer's item details page, complete the following steps:
- Sign in to an organization as an item owner with publishing privileges or an administrator.
- Open the item details page for the layer.
- Click Settings.
- Scroll to the layer's section and expand the Extensions heading.
- Expand the Server object interceptors (SOIs) heading.
A list of SOIs that have been added to your organization appears.
- Turn on the toggle button next to the SOIs that you want to enable on the service.
- If you enable multiple SOIs, use drag-and-drop functionality to specify the order in which the SOIs will be run in the chain.
The SOI at the top of the list will be run first.
Tip:
Return to this dialog box at any time to modify the list of enabled SOIs and change the order in which they are run in the chain.
- Expand the heading for each SOI you have enabled.
Operations and properties for the SOI appear. These were optionally created by the extension developer and give you a finer degree of control over what users can do with SOIs.
- If applicable, select the operations you want to allow.
- If applicable, edit the available properties.
- Click Save to apply changes.
The SOIs are now enabled on the service. To disable, turn off the toggle button next to the SOI and click Save.
Configure debug settings
To enable debugging, ArcGIS Enterprise Manager allows you to alter extension behavior. You can suspend the service startup so that you can attach your debugger to the service process before the extension initialization methods are called. You can also specify a range of ports that will be used when debugging the service.
To access these debugging settings in Enterprise Manager, follow these steps:
- Sign in to ArcGIS Enterprise Manager as an administrator.
- Click the Services button in the sidebar.
The services page appears.
- Locate and click the name of a service registered with a SOE.
- Select the Advanced tab and enable debug mode.
Extension debug settings appear once debug mode is enabled.
- Optionally, enable Suspend service at startup and specify the number of seconds that the service startup should be delayed.
- Optionally, specify a range of ports to be used when debugging.
- Click Save.
Delete an extension
When you delete an extension in ArcGIS Enterprise Manager, the extension is removed from your organization. If the extension is registered with a service, deleting the extension will also unregister it from the service.
To delete an extension, follow these steps:
- Sign in to ArcGIS Enterprise Manager as an administrator.
- Click the Extensions button in the sidebar.
The extensions page appears.
- Click the More options button for the extension you want to delete and click Delete.
- Click Delete again to confirm.
The extension is unregistered from the service and removed from the organization.
Update an extension
You can update an extension that has been added to your organization by adding its updated .soe file.
To update an extension, follow these steps:
- Sign in to ArcGIS Enterprise Manager as an administrator.
- Click the Extensions button in the sidebar.
The extensions page appears.
- Click the More options button for the extension you want to update and click Update.
- Click Choose File and select the updated version of the .soe file.
The file name must match the original .soe file name.
- Click Update extension.
The extension is updated with the new .soe file.