4 votos

¿Es posible publicar un servicio de geoprocesamiento que utilice un gptool personalizado en ArcGIS Server 10?

He desarrollado una herramienta GP personalizada en C# que hace un montón de procesamientos en una capa determinada.

Funciona muy bien en ArcMap en todas las máquinas en las que lo he desplegado. He creado un modelo que utiliza esta herramienta y quiero publicarlo como servicio de geoprocesamiento. Funcionó sin ningún problema en nuestra máquina de prueba (Esto fue probablemente porque la máquina de prueba tiene Arcgis Desktop, así como el servidor, y he publicado el servicio utilizando el ArcCatalog en esa misma máquina).

Hoy he tenido que desplegarlo en nuestro servidor de producción. Este no tiene ArcGIS Desktop. Así que registré la DLL usando ESRIRegasm en el servidor. Pero no importa lo que haga, no puedo conseguir un servicio de Geoprocesamiento que se ejecute utilizando la herramienta personalizada. Intenté colocar la caja de herramientas en el servidor y publicarla. Se publicó, pero cuando me conusmed de ArcMAp, tengo el error "ERROR 000816: La herramienta no es válida".

En los foros de ESRI, ha habido un algunos hilos sobre este tema; y el único que fue marcado como resuelto, habló de registrar la dll utilizando el interruptor /codebase . (esto fue con ArcGIS 9.3.1)

¿Alguien ha desplegado con éxito una herramienta de geoprocesamiento personalizada en un servidor, con ArcGIS server pero no con ArcGIS desktop?

3voto

mleykamp Puntos 491

No se puede desplegar esto sin acceso a las bibliotecas GAC, que se instalan como parte de ArcGIS Desktop o ArcGIS Server para .NET; no hay manera de desplegar un conjunto de herramientas ArcObjects sin instalar primero lo anterior.

Lo desplegamos con todos sus archivos de biblioteca contenidos en el despliegue. Esto funcionó, pero estaba completamente en desacuerdo con la licencia de ESRI.

Así que, en resumen, no se puede hacer sin AGD o AGS 10 instalado.

Otra cosa que hay que tener en cuenta, sin embargo, y una diferencia importante entre 9.3.1 y 10, es que una vez que su modelo de herramienta se ejecuta correctamente, la herramienta tiene que registrarse con las categorías de componentes de ESRI antes de que pueda ejecutarse dentro de una instancia de ArcGIS Server 10.

Hemos realizado este registro creando un proyecto de configuración C# .Net dentro de nuestra solución C# .NET base. Este proyecto ha cambiado completamente como resultado de las diferencias en la funcionalidad de registro de categorías de componentes entre los productos ArcGIS 9.3.1 y ArcGIS 10.

Esri recomienda colocar la funcionalidad de registro de categorías de componentes comunes en un proyecto C# .NET separado que produzca una DLL. Esta DLL común se incluye entonces en cada proyecto de configuración que la necesite.

nerd: En ArcGIS 9 se solía registrar los componentes personalizados con las categorías de componentes de ESRI mediante el registro de Windows. Eso ha desaparecido y lo haces a través de 'InvokeEsriRegAsm'. Es la forma de ESRI de enganchar el ensamblaje con COM sin contaminar el registro

Por ejemplo, un ejemplo de lo que quiero decir: ESRIRegAsmtility

1 votos

Creo que podría ser necesaria una aclaración por mi parte. Tengo instalado ArcGIS server 10 en el servidor Windows 2008 R2, pero no ArcGIS Desktop. Su respuesta parece sugerir que debería ser posible publicar un Servicio basado en una herramienta personalizada. Me interesa saber cómo hacerlo.

0 votos

Cuando instales la herramienta, tienes que seguir el esquema que te di con respecto al InvokeEsriRegAsm

1voto

Anthony Cramp Puntos 126

La solución a corto plazo es registrar la dll personalizada en el servidor con el interruptor codebase; es decir, utilizar la siguiente sintaxis en la ruta de comandos:

regasm ..[ruta a la dll] /codebase

A largo plazo, no es una decisión inteligente continuar con una herramienta de geoprocesamiento personalizada, ya que sólo Dios sabe si funcionará con ArcGIS 10.1.

Voy a pasar a un SOE personalizado, para procesar mis datos en el servidor.

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