¿Por qué necesito ArcGIS Server solo para alojar ArcObjects en un servicio web?

8

Recibo mucho esta pregunta de los desarrolladores web, y me gustaría tener una respuesta breve y concisa para ellos ...

¿Por qué necesito ArcGIS Server solo para alojar ArcObjects en un servicio web?

Kirk Kuykendall
fuente

Respuestas:

4

Puede usar ArcObjects SDK para crear sus propios servicios sin problemas en un servidor siempre que tenga una licencia adecuada. Tengo una serie de servicios que utilizamos que no utilizan los servicios SOC / SOM en AGS pero que siguen siendo consumidores de ArcObjects.

La razón por la que necesita AGS es un problema de licencia; tiene razón, podría usar el tiempo de ejecución de ArcEngine para hacer lo que necesita, pero eso no es aceptable.

DEWright
fuente
Gracias @DEWright. Entonces, ¿estás diciendo que puedo iniciar un hilo desde mi servicio web, establecer el estado del apartamento del hilo en STA, luego inicializar la licencia al servidor y luego usar arcobjects?
Kirk Kuykendall
Eso es correcto; tal como puede con cualquier extensión de ArcGIS Desktop; solo usa la opción ArcGIS Server para la licencia y obtiene acceso al nivel API apropiado. Hacemos mucho esto hablando con las clases GeoDatabse, así como otras funciones en nuestros servicios web.
DEWright
3

HASTA DONDE SE. Debido a que las licencias de ESRI no le permiten instalar ArcObjects de Desktop / Engine y ejecutarlo como un servidor. (Necesita encontrar una referencia a un acuerdo de licencia, indicando que ...)

MathiasWestin
fuente
Sí, yo también lo leí.
Donny V.
Pero incluso si tengo licencia para usar el servidor ArcGIS, pensé que también había algún problema relacionado con el modelo de subprocesos que impide el uso de arcobjects al implementar, por ejemplo, un servicio WCF REST sin SOC involucrado.
Kirk Kuykendall
@ Kirk-Kuykendall Es cierto que las API del servidor están hechas para ejecutarse en un servidor y el diseño del servidor facilita la creación y escala de la solución con más SOC, etc., sin tener que lidiar con problemas de subprocesos. El problema principal es probablemente que las API en los productos de escritorio no están hechas para ejecutarse en un servidor y tienen ganchos para cosas de GUI y para admitir la ejecución en un entorno sin GUI. ESRI tendría que documentar exactamente qué API se pueden usar o separar las API principales y la GUI aún más. Si a la gente le gusta esa idea, es posible hacer una idea en ideas.arcgis.com y votar por ella ...
MathiasWestin
El SDK tiene muchas de las API desglosadas entre la IU y las clases de soporte; solo necesita asegurarse de pasar por ellos correctamente. Lo más importante que he visto es asegurarme de que manejas tu memoria y objetos correctamente en el lado del servidor; los AppPools necesitan soportar una sola instancia; comienzas a intentar ejecutar varias instancias de las bibliotecas de ArcObj y vi bloqueos explosivos.
DEWright