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 Ihnen beim Debuggen von Java-Erweiterungen behilflich sind. 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 Server Manager-Debugging-Werkzeug verfügbar.
Die ArcGIS Enterprise SDK-Dokumentation bietet eine detaillierte Hilfestellung beim Debuggen von Java- und .NET-Erweiterungen.
Debugging-Workflow
Zum Debuggen der Erweiterung müssen Sie folgende Schritte ausführen:
- Verwenden Sie ArcGIS Server Manager, um Ihre Erweiterung bereitzustellen.
- Verwenden Sie Server 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 Server Manager, um das Debuggen zu deaktivieren.
Konfigurieren der Debugging-Einstellungen in Server Manager
Um das Debuggen zu vereinfachen, gestattet ArcGIS Server Manager Ihnen, das Verhalten der Erweiterung 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 Server 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.