[GIS] How to publish a custom .NET GP Tool as a GP Service on ArcGIS Server 10.1

arcgis-serverarcobjectsgeoprocessingnet

I have a GP Tool that I am able to publish as a GP service at 10.0.

I recompiled the DLL for 10.1 and have followed the steps in the Deploying custom .NET and C++ tools page of the 10.1 help doc. The tool works correctly in arcmap.

However, when I get to the step where I create the geoprocessing package, or when I try to publish directly as a service, I get error 00151 "Tool is unsupported on server".

Has anyone been able to take a custom GP Tool developed with C# and publish it to ArcGIS server 10.1 as a GP service without wrapping it with python?

(I do see this thread about difficulties with an executable – which I presume means an exe. I would like to avoid having to wrap all my tools in python, as suggested in that thread.)

Update

I probably should mention I also have desktop installed on the same machine with server (along with Visual Studio). It is interesting that even though I get the 00151 error, when I try to recompile the dll, Visual Studio fails, saying it can't delete the dll because it's locked by another process. It turns out that other process is arcgis server. If I stop the arcgis server instance I can recompile, implying that even though I get the 00151 error, arcgis server is still loading the dll into memory.

Update 2

Esri was able to provide me a simplified version of my gp tool. See the Deploying a Custom C# GP-Tool on 10.1 Server thread in the Esri forum. The project team will be deciding whether or not to port to python before I spend more time on trying to figure this out. Will update again once I get access to the test server.

Best Answer

The problem lies with ESRIRegAsm for 64bit. It does not work in 10.1. Compile your dll for AnyCPU. Generate the ecfg registration file using regular ESRIRegAsm. Copy the ecfg file from desktop to the server folder. Then use the 64bit version of regasm.exe to register your dll.

Related Question