AnsweredAssumed Answered

running an EXE from a geoprocessing service

Question asked by dastewart on Jun 28, 2013
Latest reply on Jul 3, 2013 by dastewart
This is a complex setup, but I'm hoping someone has ideas...

I have a Python geoprocessing service that makes calls into a custom C# .NET assembly which makes calls into a custom 64-bit C++ COM DLL containing ArcObjects code. Everything publishes to Server and works fine up until the point where the COM DLL runs a custom 32-bit C++ EXE in a new process. The EXE does not use ArcObjects. It reads a file, writes a file and exits. The process itself seems to be created successfully, but the EXE is never executed. GetExitCodeProcess() returns C0000135, DLL cannot be found.

Some pertinent facts:
1) I am building all components on the ArcGIS Server 10.1 box (Windows 7 Ultimate).
2) The EXE is in its own folder which also contains all the DLLs it is dependent upon, other than ones that delivered with Windows and VC runtimes.
3) This folder is registered as a data store with ArcGIS Server 10.1.
4) The ArcGIS Server user has execute permission for the EXE.
5) I have unit tests for the 64-bit C++ COM DLL that succeed in running this EXE. Those tests run using an ArcGIS Server 10.1 license.

It seems like the problem has to be environmental. I have captured the path for the parent process when the EXE process is created. It matches exactly with the path present in a Windows command shell, an environment in which the EXE runs successfully.

TIA for any input.

Outcomes