Warum brauche ich ArcGIS Server nur, um ArcObjects in einem Webdienst zu hosten?

8

Ich bekomme diese Frage sehr oft von Webentwicklern und hätte gerne eine kurze, präzise Antwort für sie ...

Warum brauche ich ArcGIS Server nur, um ArcObjects in einem Webdienst zu hosten?

Kirk Kuykendall
quelle

Antworten:

4

Mit dem ArcObjects SDK können Sie problemlos Ihre eigenen Services auf einem Server erstellen, sofern Sie über eine entsprechende Lizenz verfügen. Ich habe eine Reihe von Diensten, die wir verwenden und die die SOC / SOM-Dienste in AGS nicht verwenden, aber dennoch ArcObjects-Konsumenten sind.

Der Grund, warum Sie AGS benötigen, ist ein Lizenzproblem. Sie haben Recht, Sie könnten die ArcEngine-Laufzeit verwenden, um das zu tun, was Sie benötigen, aber das ist nicht akzeptabel.

DEWright
quelle
Danke @DEWright. Wollen Sie damit sagen, dass ich einen Thread über meinen Webdienst starten, den Apartmentstatus des Threads auf STA setzen, dann die Lizenz für den Server initialisieren und dann arcobjects verwenden kann?
Kirk Kuykendall
Das ist richtig; Genau wie bei jeder ArcGIS Desktop-Erweiterung. Sie verwenden nur die ArcGIS Server-Option für die Lizenz und erhalten Zugriff auf die entsprechende API-Ebene. Wir tun dies viel im Gespräch mit den GeoDatabse-Klassen sowie anderen Funktionen in unseren Webservices.
DEWright
3

SO VIEL ICH WEISS. Da Sie mit der ESRI-Lizenzierung Desktop / Engine ArcObjects nicht installieren und als Server ausführen können. (Sie müssen einen Verweis auf eine Lizenzvereinbarung finden, aus dem hervorgeht, dass ...)

MathiasWestin
quelle
Ja, das habe ich auch gelesen.
Donny V.
Aber selbst wenn ich für die Verwendung des ArcGIS-Servers lizenziert bin, dachte ich, dass es auch ein Problem im Zusammenhang mit dem Threading-Modell gibt, das die Verwendung von Arcobjects verhindert, wenn beispielsweise ein WCF-REST-Service ohne SOC implementiert wird.
Kirk Kuykendall
@ Kirk-Kuykendall Das stimmt, die Server-APIs sind für die Ausführung auf einem Server konzipiert, und das Design des Servers erleichtert das Erstellen und Skalieren der Lösung mit mehr SOCs usw., ohne sich mit Threading-Problemen zu befassen. Das Hauptproblem besteht wahrscheinlich darin, dass die APIs in den Desktop-Produkten nicht für die Ausführung auf einem Server vorgesehen sind und Hooks für GUI-Inhalte haben. Um die Ausführung in einer Nicht-GUI-Umgebung zu unterstützen, müsste ESRI genau dokumentieren, welche APIs verwendet oder getrennt werden können die Kern-APIs und GUI noch mehr. Wenn Leute diese Idee mögen, ist es möglich, eine Idee auf ideas.arcgis.com zu machen und dafür zu stimmen ...
MathiasWestin
Das SDK enthält tatsächlich viele der APIs, die zwischen der Benutzeroberfläche und den unterstützenden Klassen aufgeteilt sind. Sie müssen nur sicherstellen, dass Sie sie richtig durchlaufen. Das Größte, was ich gesehen habe, ist sicherzustellen, dass Sie mit Speicher und Objekten auf der Serverseite richtig umgehen. Die AppPools müssen eine einzelne Instanz unterstützen. Sie versuchen, mehrere Instanzen der ArcObj-Bibliotheken auszuführen, und ich habe explosive Abstürze gesehen.
DEWright