4 votos

Servicios de geoprocesamiento de ArcGIS: no funciona si 'Ejecutar script de Python en proceso' no está marcado

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"?

10voto

Lux555 Puntos 16

Yo estoy usando esta misma pila y hay ciertas cosas que se pueden hacer órdenes de magnitud más rápido que arcpy. Mi consejo es asegurarse de que está ejecutando el absoluto última versión de GDAL y enlaces - me pongo la mía: vbkto.dyndns.org/sdk a Continuación, el comentario de todos los de su GDAL (osr, ogr) las llamadas y activarlos uno a la vez. Usted podría descubrir que su sólo una llamada que está matando a la secuencia de comandos y puede intercambiarlo con una solución. Perseverar; es posible hacer este trabajo.

4voto

Chris Puntos 1514

No creo que el problema está en la opción de proceso.

En general en ArcGIS Server, la herramienta debe ser en proceso, ya que cada vez que un gp de la herramienta se llama, ArcGIS Server crea un nuevo proceso para que la llamada y la herramienta se ejecuta en su interior, que no es posible, para el servidor de roscado razones, para ejecutar el gp de la herramienta fuera de ese proceso creado.

por otro lado, si usted planea ejecutar un gp herramienta de ArcGIS Server tienes que pensar en el futuro acerca de cómo desarrollar la herramienta, porque hay algunas diferencias importantes entre una herramienta de escritorio y una herramienta de servidor: no todos la herramienta de escritorio son adecuados para ejecutar en el servidor (y esto es cierto no solo para Python gp herramientas, sino también para el Modelo Generador de gp herramientas)

Hay diferencias en qué tipo de parámetros que puede utilizar para la entrada y salida, usted tiene que tomar en cuenta la ejecución de la carpeta que ArcGIS Server crea cada vez que un gp de la herramienta se llama (en la que también tienen un especial carpeta que contiene el Cero geodb), no se puede confiar en el sistema de archivos de la misma manera que haces en el escritorio, y otras cosas como estas.

Así que tal vez el problema está en otro lugar, y si tengo que adivinar, basándose en la descripción que este es el caso.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X