Das Debuggen einer Erweiterung (SOE oder SOI) birgt gewisse Herausforderungen, da Sie in einen laufenden Service-Prozess eingreifen müssen. ArcGIS Server Manager bietet mehrere Einstellungen, die Sie beim Debuggen von Java-Erweiterungen unterstützen. Diese Einstellungen werden im Folgenden ausführlicher beschrieben. Mit Visual Studio Debugger können Sie nur .NET-Erweiterungen debuggen, für .NET-Erweiterungen ist kein Debugging-Werkzeug im Manager verfügbar. Das ArcObjects SDK for .NET und die ArcGIS Enterprise SDK-Dokumentation enthalten eine detaillierte Hilfe für das Debuggen von .NET-Erweiterungen. Der Prozess des Debuggens von Erweiterungen ist unabhängig davon, welches SDK Sie zum Entwickeln Ihrer SOE oder Ihres SOI verwenden, identisch.
Debugging-Workflow
Zum Debuggen der Erweiterung müssen Sie folgende Schritte ausführen:
- Verwenden Sie ArcGIS Server Manager, wenn Sie Ihre Erweiterung bereitstellen möchten.
- Verwenden Sie Manager, wenn Sie das Debugging Ihrer Erweiterung aktivieren und Debugging-Einstellungen konfigurieren möchten. Diese Schritte werden im Folgenden detaillierter beschrieben.
- Legen Sie Haltepunkte an den gewünschten Positionen im Erweiterungscode fest.
- Beenden Sie den Service, und starten Sie ihn neu.
- Fügen Sie sofort einen Debugger an den Betriebssystemprozess an, der den Service ausführt. Wenn der Haltepunkt sich im Initialisierungscode der Erweiterung befindet, wird der Haltepunkt ausgelöst, sobald der Service startet. Andernfalls wird der Haltepunkt ausgelöst, wenn Sie die Erweiterung verwenden.
- Verwenden Sie Manager zum Deaktivieren der Debugging-Funktion.
Konfigurieren von Debugging-Einstellungen in Manager
Zur Vereinfachung des Debugging bietet ArcGIS Server Manager die Möglichkeit, das Verhalten von Erweiterungen zu ändern. Sie können das Starten von Services unterbrechen, damit Sie den Debugger an den Service-Prozess anfügen können, bevor die Initialisierungsmethoden der Erweiterung aufgerufen werden. Zudem können Sie einen Portbereich festlegen, der beim Debuggen des Service verwendet werden soll.
Um auf diese Debugging-Einstellungen in Manager zuzugreifen, führen Sie die folgenden Schritte aus:
- Melden Sie sich bei ArcGIS Server Manager an, und klicken Sie auf Site.
- Klicken Sie auf GIS-Server > Erweiterungen.
- Klicken Sie auf Debug-Einstellungen, und aktivieren Sie die Option Debugging von Erweiterungen aktivieren. Dadurch werden die anderen Optionen im Dialogfeld aktiviert.
- Aktivieren Sie optional Das Starten von Services unterbrechen und geben Sie die Anzahl der Sekunden ein, um die der Service-Start verzögert werden soll.
Es gibt Erweiterungscode, der nur einmal ausgeführt werden kann, wenn der Service startet. Dieser Code wird normalerweise in die Konstruktionsmethode der IObjectConstruct-Schnittstelle eingefügt. Wenn das Starten des Service unterbrochen wird, haben Sie Zeit, den Debugger an den Service-Prozess anzufügen, bevor die Konstruktionsmethode ausgeführt wird, und Sie können auf diese Weise alle Haltepunkte auslösen, die Sie im Code dieser Methode festgelegt haben.
- Zudem können Sie optional einen Portbereich angeben, der beim Debuggen verwendet werden soll.
- Klicken Sie auf Speichern.
Sie können nun die Erweiterung debuggen, indem Sie den Service beenden und erneut starten und den Debugger an den Betriebssystemprozess anfügen, der den Service ausführt. Wenn Sie ein Zeitfenster für die Unterbrechung des Service-Starts festlegen, müssen Sie den Debugger an den Service-Prozess anzufügen, bevor dieses Zeitfenster erreicht wird, da Sie ansonsten keine Haltepunkte in der Konstruktionsmethode der Erweiterung auslösen können.
Der Service kann während des Debugging-Prozesses bei Bedarf jederzeit beendet und neu gestartet werden.
Vorsicht:
Nachdem Sie das Debugging der Erweiterung abgeschlossen haben, kehren Sie zu den Debug-Einstellungen zurück und deaktivieren Sie die Option Debugging von Erweiterungen aktivieren. Wenn Sie diesen Schritt nicht ausführen und die Einstellungen so konfiguriert haben, dass der Service beim Starten unterbrochen wird, führt dies bei jedem Start des Service zu einer Verzögerung.