调试服务器对象扩展

调试服务器对象扩展 (SOE) 面临特有的挑战,因为您必须进入一个正在运行的服务进程。ArcGIS Server 管理器提供了多种设置以帮助您调试 Java SOE。下面将更详细地介绍这些设置。您可以通过使用 ArcObjects .NET SDK 帮助中所述工作流的 Visual Studio 调试程序来调试 .NET SOE。

Java SOE 调试工作流

要调试 SOE,需要执行以下操作:

步骤:
  1. 使用 ArcGIS Server 管理器部署 SOE
  2. 使用管理器来启用对 SOE 的调试并配置调试设置。下面将更详细地介绍这些内容。
  3. 在 SOE 代码中的所需位置处设置断点。
  4. 重新启动服务。
  5. 立即将调试程序附加到运行服务的操作系统进程。如果断点位于 SOE 初始化代码中,则断点会在服务启动时触发。否则,断点将在使用 SOE 时触发。
  6. 使用管理器以禁用调试。

在管理器中配置 Java SOE 调试设置

为便于调试,您可使用 ArcGIS Server 管理器更改 SOE 行为。而且,您可以选择暂停服务启动,这样在调用 SOE 初始化方法之前将调试程序附加到服务进程中。您还可指定调试服务时使用的一系列端口。

要在管理器中访问这些调试设置,请执行以下步骤:

步骤:
  1. 登录 ArcGIS Server 管理器,然后单击站点
  2. 单击 GIS 服务器,然后在左侧菜单中单击扩展
  3. 单击调试设置
  4. 选中启用扩展的调试

    这将启用对话框中的其他选项。

  5. 另外,选中暂停服务启动,然后输入服务启动应延迟的秒数。

    当服务启动时,某些 SOE 代码仅运行一次。此代码通常位于 IObjectConstruct 界面的构建 (Construct) 方法中。在构建 (Construct) 方法运行之前,暂停服务启动可留出时间将调试程序附加到服务进程中,这样您可以触发在方法的代码中所设置的任意断点。

  6. 另外,指定调试时使用的一系列端口。
  7. 单击保存

现在,您可以通过重新启动服务并将调试程序附加到运行服务的操作系统进程中来调试扩展模块。如果设置时间窗来暂停服务启动,则在到达该时间窗之前需要将调试程序附加到服务进程中;否则不会在 SOE 的构建方法中触发任何断点。

可以根据需要在调试进程中多次重新启动服务。

警告警告:

在完成对扩展的调试之后,返回到调试设置,然后取消选中启用扩展的调试。如果无法执行此操作,并且已配置设置以暂停服务启动,则每次尝试启动服务时,都会延迟。

9/15/2013