if have an installation with ArcGIS Portal and ArcGIS Server 10.6. I uploaded a Server Object Extension and Server Object Interceptor to the ArcGIS Server.
When I create an mxd file with ArcMap and publish a map service from ArcMap, I can activate the SOE as well as the SOI on this map service in the ArcGIS Server Manager.
When I publish a Map Service from ArcGIS Pro, it is not possible to activate the SOE or SOI for the resulting map service in the ArcGIS Server Manager. I don't even the SOE or SOI in the configuration page of the map service.
Can anybody give me a hint what's wrong?
Ok, I think I found the reason myself:
Apparently there is a bug in ArcGIS Pro when publishing a map service, see ArcGIS Pro Cityworks SOE and BUG-000110249: The option to enable Server Object Extensions (SOEs)..
There is a workaround described in the bug ticket "Go to the service properties in ArcMap Catalog window or ArcCatalog and enable the SOE/SOI from the Capabilities tab." but this does not work:
When I try to activate the soe in ArcGIS Catalog for a service published from ArcGIS Pro, I get the error message "ERROR: 'MySoeName' is not a valid extension type for 'MapServer'."
The other solution, originally publishing from ArcMap or ArcCatalog is also no solution in my case because I am trying to use the new Utility Network, so I am a little bit stuck right know.
Is there any solution for this problem?
I'm on ArcPro 2.3.2 and hit the same problem. I can enable the SOI using the arcgis/admin/services/<Service_Name>.MapServer/edit REST API against a service published using ArcMap, but it fails when run against a service published with ArcPro python. All of my scripting is run on ArcPro/Python 3 so it really isn't an option to do the publish with ArcMap or anything with manual steps.
["'ObjIdSOI' is not a valid extension type for 'MapServer'."]
Can somebody from ESRI please recheck the supposed fix to this and let us know what we need to do to get around this problem?
At the developer summit I found out that you have to use the enterprise SDK to build your SOI/SOE for it work against a service published by ArcGIS Pro. Use the ArcObjects SDK if the service is published with ArcMap. It’s not really obvious in the documentation but it does work.
Thanks for the feedback Jimmy. I'm using the Enterprise SDK to develop the SOI - and that part seems to work well. The problem I have is programmatically installing the SOI on a service published via ArcPro. I took another look at the Enterprise SDK and it doesn't appear to provide any API to actually do the installation.
I spent most of the day today rolling back my code to allow it to be published with Python2.7/ArcMap. That means going back to .lyr and mdx files (from .lyrx and .aprx). Now that I've done that and republished, I am able to install the SOI using the REST APIs. It is quite a mess doing some of the work in Python 2.7 (spawning off that work in subprocesses) and some in Python 3 but I guess I'll have to live with it until this bug is fixed.
Right - I just tried this on the latest ArcGIS PRO (2.6.1) and I still can not get the option to enable the SOI from a published service. The only option that I can see for me is to stick with doing it in Python 2.7
I dug into the documentation a bit more and my guess is that my problem is that I'm trying to publish "web feature layers" to an ArcGIS server but only "map image layers" are supported (from ArcGIS Pro). To publish "web feature layers" it looks like I need a FeatureSharingDraft object and there is only one way to get that - Map.getWebLayerSharingDraft() where you specify the service type (FEATURE, TILE, or MAP_IMAGE). However the documentation states:
When I look at the CreateSharingDraft documentation there is no way to specify the service type - it says it only returns a MapServiceDraft - no way to get a FeatureSharingDraft.