2

We have developed a server object extension in Visual Studio 2010, and successfully deployed to the ArcGIS Server hosted on a windows box. However, when we try to deploy it to a linux server, it complains that the DLL is not found in the .SOE file, which actually contains. Is it possible to deploy a .NET SOE on a linux box? If so, what's the steps to deploy it?

Thanks.

2

.NET SOEs will not run on Linux. You will have to recreate it in Java or C++: ArcObjects SDK 10.2 system requirements

See this blog post on porting .NET SOEs to Java.

1

One note on SOE deployment:

I now deploy all my SOEs using python through the ArcGIS REST Admin API using Python. Its awesome because I can deploy my SOE to several machines at once. I just stick a soe_deploy.py file in each of my projects:

if __name__ == "__main__": 

    from ags_servers import servers
    from soe_utils import *

    soePath = os.path.join(os.getcwd(), 'BatchIdentifyRESTSOE101','bin','Debug', 'BatchIdentifyRESTSOE101.soe')

    #Register on Staging
    server = servers.get('staging_arcgis_service_name')
    upload(server['server'],server['port'], server['adminUser'], server['adminPass'], soePath)
    # stopStartServices(server['server'],server['port'], server['adminUser'], server['adminPass'],'Stop',[r'serviceFolder/serviceUsingSOE.MapServer'])
    # stopStartServices(server['server'],server['port'], server['adminUser'], server['adminPass'],'Start',[r'serviceFolder/serviceUsingSOE.MapServer'])

    #Register on Production
    server = servers.get('production_arcgis_service_name')
    upload(server['server'],server['port'], server['adminUser'], server['adminPass'], soePath)
   # stopStartServices(server['server'],server['port'], server['adminUser'], server['adminPass'],'Stop',[r'serviceFolder/serviceUsingSOE.MapServer'])
   # stopStartServices(server['server'],server['port'], server['adminUser'], server['adminPass'],'Start',[r'serviceFolder/serviceUsingSOE.MapServer'])

The ags_servers module contains a dictionary of server names to server details / credentials. I posted a quick gist of the soe_utils.py file, with some of my custom decorators / logging removed. You will need to test, but the meat is there.

https://gist.github.com/brendancol/7029764

Note: there are some security issue with the setup.

  1. Credentials are stored in the ags_servers module which is dangerous
  2. The soe_utils is passing the credentials over http as plain text which could be sniffed and stolen. These are two items I want to fix.

Definitely checkout the ArcGIS Server Administrator toolkit which includes a sample on deploying a registering an SOE. http://www.arcgis.com/home/item.html?id=12dde73e0e784e47818162b4d41ee340

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.