Tengo un estándar de la caja de herramientas de geoprocesamiento que estoy exponiendo como un servicio de geoprocesamiento. Las herramientas de esta caja son simples 'ol secuencias de comandos de python. Todo esto está siendo hecho en ArcGIS 9.3.1.
Como autónomo caja de herramientas se ejecutan en el entorno de escritorio, todas las herramientas de ejecutar a la perfección. Sin embargo, tan pronto como yo trato de ejecutar las mismas "herramientas", como se expone a través del servicio de geoprocesamiento, todo tipo de cosas raras que sucede. Entre otras cosas, deja de ejecutarse el script de forma abrupta, sin tirar ningún tipo de error. A su vez, el cliente nunca recibe una notificación de éxito o de fracaso...
Después de muchos días de rascarse la cabeza, he llegado a conocimiento de la propiedad de las herramientas de secuencia de comandos - 'Ejecutar secuencia de comandos de Python en proceso de opción. Desde ESRI estándar de la ayuda web:
Ejecuta en proceso requiere que todos los módulos cargados con Python importación directiva, tienen la lógica necesaria que les permita ejecutar en-proceso. Todas las librerías de Python, como sistema operativo, cadena, y tiempo, tienen la lógica necesaria. Sin embargo, no estándar de los módulos obtenidos de terceros pueden no tener la lógica necesaria para que se ejecute en el proceso. Si usted está experimentando inexplicable problemas cuando el script se ejecuta, probar a desactivar la opción de proceso y ejecute la secuencia de comandos de nuevo. Si el problema desaparece cuando se ejecuta fuera de proceso, entonces no hay más probablemente un problema con uno de los módulos importados. En este caso, deje la opción desactivada.
Efectivamente, mis scripts hacen uso de la 3ª parte de las bibliotecas, así que tengo que pensar finalmente lo entendí - anule la selección de esta opción y todos mis problemas desaparecen. Pues bien, si yo desactive la opción y exponer la herramienta de servicio gp - falla de inmediato con el "Error de Ejecución de la Tarea de Código de Error 500". En lugar de hacer la mitad del camino a través de la secuencia de comandos - sólo bombas de inmediato.
¿Alguien sabe si es posible ejecutar los servicios de geoprocesamiento "fuera del proceso"?