PROBLEM

Die Standardeigenschaften der Serverobjekterweiterung (SOE) werden nicht angewendet

Last Published: January 4, 2021

Beschreibung

Die Standardeigenschaften der Serverobjekterweiterung (SOE) werden auf einen Service nicht angewendet, wenn die SOE aktiviert wird.

Hinweis: Dieser Artikel gilt für die ArcGIS Server-Versionen 10.0 und früher. Höhere Versionen von ArcGIS enthalten möglicherweise andere Funktionalität sowie andere Namen für Menüs, Befehle und Geoverarbeitungswerkzeuge, die sich auch an anderen Orten befinden können.

Ursache

Mithilfe von Serverobjekterweiterungen (SOEs) werden optional Eigenschaften verfügbar gemacht, die vom Serveradministrator zu dem Zeitpunkt festgelegt werden, zu dem die SOE für einen Service aktiviert wird. SOE-Eigenschaften ermöglichen eine gewisse Flexibilität hinsichtlich der Art und Weise, wie eine SOE für verschiedene Services desselben Typs bereitgestellt wird. Beispielsweise stellt die SOE eine Eigenschaft zur Verfügung, die bestimmt, welcher Layer in einer Karte von der SOE für die Analyse verwendet wird. Da dies bei verschiedenen Services unterschiedlich sein kann, wird diese Funktionalität als Eigenschaft verfügbar gemacht.

SOE-Eigenschaften sollen über benutzerdefinierte Eigenschaftenseiten festgelegt werden, die vom SOE-Entwickler für ArcCatalog oder Manager geschrieben wurden. Wenn keine Eigenschaftenseite entwickelt wird, oder wenn der Serveradministrator den Service mit dem Assistenten zum Veröffentlichen von GIS-Ressourcen (der die Eigenschaftenseite nicht anzeigt) veröffentlicht, werden keine Standardeigenschaften für die SOE festgelegt. Dies führt dazu, dass die SOE nicht ordnungsgemäß funktioniert.

SOE-Entwickler reagieren auf die Möglichkeit, dass kein Wert für die Eigenschaft gefunden wird. Dies geschieht, indem direkt im SOE-Code innerhalb eines Catch-Blocks ein Standardwert festgelegt wird.

Lösung oder Problemumgehung

Wenn der/die SOE-Entwickler/-in eine ArcCatalog- oder Manager-Eigenschaftenseite für die SOE erstellt, verwendet der Serveradministrator anschließend den Assistenten zum Hinzufügen eines neuen Service, um die SOE für den Service zu aktivieren. Im Assistenten zum Hinzufügen eines neuen Service wird die Eigenschaftenseite angezeigt, und der Serveradministrator hat die Möglichkeit, gültige Eigenschaftswerte anzuwenden. Alternativ kann der Serveradministrator nach dem Erstellen des Service das Dialogfeld Service-Eigenschaften öffnen und über die Registerkarte Funktionen auf die SOE-Eigenschaftenseite zugreifen.

Wenn keine Eigenschaftenseite erforderlich ist, muss innerhalb der SOE Code eingefügt werden, um den Fall zu behandeln, dass die Eigenschaft nicht festgelegt ist. Dies wird, wie im folgenden Beispiel gezeigt, innerhalb der Construct-Methode der SOE erreicht. In diesem Beispiel wird festgelegt, dass eine Eigenschaft mit dem Namen "MarkerLimit" auf einen Standardwert von 500 festgelegt wird, wenn in der Service-Konfigurationsdatei keine Eigenschaft gefunden wird (Programmiersprache des Beispiels ist C#).

Code: public void Construct(IPropertySet props) { configProps = props; try { string markerLimitString = props.GetProperty("MarkerLimit") as string; m_markerLimit = Convert.ToInt32(markerLimitString); } catch { logger.LogMessage(ServerLogger.msgType.warning, "Construct", 8000, "SOE custom error: No value or invalid value provided for MarkerLimit. Defaulting to a limit of 500."); m_markerLimit = 500; // Default if property can't be read } }

Artikel-ID:000011304

Hilfe von ArcGIS-Expert*innen erhalten

Technischen Support kontaktieren

Die Esri Support-App herunterladen

Zu den Download-Optionen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden