在 ArcGIS Pro 中发布或覆盖 Web 工具和地理处理服务
要将分析结果共享为 Web 工具或地理处理服务,请确保您拥有足够的发布权限,并且 ArcGIS Pro 与 ArcGIS Enterprise 版本兼容。
门户登录账户的角色应该是管理员或自定义角色。 如果角色是自定义角色,则最低要求是具有管理权限的发布 Web 工具选项的现有默认发布者角色。
要发布到运行 ArcGIS Server 的独立服务器,您必须是管理员或者具有特殊系统属性的发布者。 必须向服务器添加管理员连接。 要更新系统属性以允许发布者发布地理处理服务,请使用 ArcGIS Enterprise Administrator API 并添加 allowGPAndExtensionPublishingToPublishers 属性。
创作和共享 Web 工具快速浏览
可以将 web 工具或地理处理服务共享为新的 web 工具或者覆盖现有 web 工具。 要通过任一选项共享 web 工具或地理处理服务,请参阅创作和共享快速浏览。
发布或覆盖时的常见可选步骤
无论发布还是覆盖 Web 工具或地理处理服务,均可执行可选步骤以更精细地控制已发布工具的行为,并确保发布成功。 尽管许多工具可使用默认设置发布,但配置这些设置可进一步自定义已发布工具,并为具有不同需求的 Web 工具用户提供服务。
基本和高级设置
在大多数情况下,您会希望在共享窗格中调整基本 Web 工具设置。 这些设置控制已发布工具最重要的部分,例如执行模式、工具运行时的消息显示级别、可访问工具的用户,以及 Web 工具用户如何访问已发布工具。 在某些情况下,默认行为可能不符合需求,例如参数输入模式,这需要在发布时将其更改为其他模式。
对于您尝试发布的一小部分工具,也可能存在一些管理需求。 拥有管理访问权限后,可调整地理处理服务的高级服务属性。
分析
在发布之前,需要对您的工具进行分析。 此过程将识别可能阻止工具发布的问题。 将提供有关构成服务和潜在解决方案的数据和工具的信息。 只能通过修改工具或构成工具的数据来解决一些分析器错误。 其他消息和警告可提供指导和最佳做法。 解决严重错误并配置服务设置后,即可发布该工具。
要运行分析,请单击共享窗格底部的分析按钮。
即使您未主动分析工具,发布和覆盖操作都会自动运行分析,无论您之前是否运行过。
添加工具
在共享 Web 工具或地理处理服务时,请确保模型、脚本或 Python 工具箱工具的运行结果无错误。 可以使用多个结果来构建 web 工具或地理处理服务。 仅可包含成功的地理处理历史记录项或带有警告消息的项目,发布过程必须无任何错误分析器消息才能成功发布。 对相似工具或者作为工作流一部分的工具进行分组时,添加多个工具是非常好的方法。
注:
无法向现有 web 工具或地理处理服务添加新工具。 您必须重新发布现有工具,并将新工具包含在单个新 web 工具或地理处理服务中,或者覆盖要更新的工具。
从 ArcGIS Pro 3.6 开始,除了无错误历史记录项目,您还可以选择一个或多个工具箱,或工具箱内的任务。 有关从任务或工具箱共享的限制,请参阅合并选项。
在 ArcGIS Enterprise 中使用联合服务器
将 web 工具共享到门户时,托管服务器是基础地理处理服务的默认服务器。 将许多 web 工具共享至托管服务器可能会因系统资源(包括系统内存)不足而影响性能。 如果具有多个可用服务器并且已将其联合至您的门户中,则将地理处理服务从默认托管服务器分离到其自己的联合服务器会更具优势。 在没有多个联合服务器的情况下,如果管理员和发布者遵循良好的服务和资源管理,则可将地理处理服务共享至托管服务器。
不同的部署环境
除了共享到当前 ArcGIS Pro 会话登录的 ArcGIS Enterprise 或使用服务器连接文件的独立服务器外,您还可以通过服务定义文件、将项目添加到 ArcGIS Online 或共享到 ArcGIS Enterprise on Kubernetes 等方式,将 Web 工具共享到其他部署。
另存为服务定义文件
将分析结果另存为服务定义文件 (.sd),稍后再将其发布到 ArcGIS Enterprise。 您还可以在创建服务定义文件后,使用上传服务定义工具将其发布到其他 ArcGIS Enterprise 或不同环境中的独立服务器。
有关创建连接或离线服务定义文件的详细步骤,请参阅保存 Web 工具或地理处理服务的服务定义。
ArcGIS Online
您无法直接将 Web 工具或地理处理服务共享到 ArcGIS Online,但可以将 ArcGIS Enterprise 中已发布 Web 工具或地理处理服务的服务 URL 作为地理处理服务项目添加到 ArcGIS Online 中。
ArcGIS Enterprise on Kubernetes
从 ArcGIS Pro 2.9 和 ArcGIS Enterprise 10.9.1 开始,您可以将 Web 工具发布到 ArcGIS Enterprise on Kubernetes。
高级共享场景
在大多数场景中(如创作和共享快速浏览中的示例),先运行工具再使用历史记录项目发布,可通过验证行为、数据访问和参数配置,提供最可靠和可预测的发布体验。
从 ArcGIS Pro 3.7 开始,根据部署环境、数据可访问性或工程复杂性,您可以选择配置特定的合并选项以及包含数据、脚本和工具箱选项,以控制如何为 ArcGIS Server 准备工具、工具箱及支持资源。 了解合并选项有助于简化发布流程,避免不必要的数据重复,并确保地理处理服务在其服务器环境中正常运行。 您可以在共享窗格的“常规”选项卡中配置这些 Web 工具设置。 以下案例展示了可从这些新 Web 工具设置选项中受益的场景。
无需先运行即可发布
发布前运行工具有助于确保其按预期运行。 运行工具可帮助您识别创作过程中可能未注意到的错误,检测潜在性能问题,并确认数据未被意外修改。 运行工具还可启用某些行为,例如在使用选择列表输入模式时,为输入参数填充有效图层列表。
如果您的工具未定义输入参数的默认值,发布前运行工具可确保在发布过程中有可配置或移除的默认值。
但是,如果您的工具使用仅 ArcGIS Server 可访问的硬编码数据路径,由于数据访问限制,在本地运行将失败。 在这些情况下,合并选项允许您无需先运行工具即可发布。 您可以直接从工具箱中的任务、整个工具箱或任务与工具箱的组合进行共享。 为支持此工作流,请直接共享工具箱或任务,并选中更新相对于服务器的路径选项。
您可以像下面这样在 ArcGIS Pro 中共享整个工具箱或单个任务,或通过指定工具箱或任务使用 Python 发布。

Pro 和服务器部署在一起
如果 ArcGIS Pro 和 ArcGIS Server 安装在同一台机器上,或者工具箱存储在两者均可访问的共享位置,您可能希望避免在服务器上创建工具箱的重复副本。 尽管仍建议从历史记录项目共享,但您可以取消选中包含自定义工具箱选项以保持单一副本。 如果您对工具箱进行了更改(尤其是涉及参数的更改),则必须覆盖或重新发布服务。 对于次要更新,您可以停止地理处理服务,更新工具箱,然后启动服务。
管理复杂的项目文件夹结构
在许多组织中,管理包含大量数据源的大型复杂工程很常见,而您发布的 Web 工具可能仅使用其中一小部分资源。 如果您的工程包含大量文件夹结构或众多相互依赖的数据集,在发布脚本工具或 Python 工具箱时取消选中完整本地 Python 包选项,可显著减少合并时间,防止不必要的数据复制,并避免合并失败。
从包含临时或不可用数据的历史记录项目发布
从历史记录项目发布时,特别是那些在当前 ArcGIS Pro 会话打开前运行工具所创建的项目,之前运行中使用的一些数据集可能已不可用。 这种情况在使用内存工作空间时很常见,因为 ArcGIS Pro 关闭时会清除该空间。 在这些情况下,您可以取消选中在共享前运行工具验证选项,以避免因缺少临时数据而导致验证错误。
支持高级共享场景的选项
对于常见共享场景,您无需配置这些选项,默认选项即可适用。 但是,为支持高级共享场景,从 ArcGIS Pro 3.7 开始,您需要根据使用案例配置以下选项。
包含数据、脚本和工具箱
对于大多数共享工作流,您需要包含所有数据、脚本和工具箱,以确保已发布工具正常运行。 但是,对于某些高级共享场景,您可能希望自定义发布工作流要复制和忽略的内容。
选中此选项时,包含自定义工具箱和包含本地 Python 包将被锁定为选中状态。
取消选中此选项时,这两个选项将被解锁,您可以对其进行配置。 一旦取消选中此选项,将无法向服务器复制任何数据,或将任何 URL 数据转换为复制的要素或表。 仅可使用已注册的数据源。 此外,由于没有数据被复制且无需验证检查,在共享前运行工具验证选项将被锁定为未选中状态。
此选项默认为选中。
合并选项
共享分析时,Web 工具发布的合并是必需流程。 此过程会收集工具发布后运行所需的一切内容,例如使用的任何模型、脚本或 Python 工具箱,需要复制的任何数据集,以及服务和共享配置。 根据您的数据共享设置,某些数据集路径会自动更新,以确保服务器在运行工具时能访问所需数据。 合并过程结束时,所需的所有内容将被压缩到服务定义文件中,并在适用时上传到服务器。 避免合并的唯一方法是使用创建服务 REST API 并自行指定所有服务配置,包括管理服务所需的所有数据源。
从 ArcGIS Pro 3.7 开始,发布或覆盖 Web 工具或地理处理服务以及创建连接或离线服务定义时,可使用更多合并选项。 在典型发布工作流中,可忽略这些设置,因为它们不是必需的且默认设置可正常工作。 这些选项适用于高级场景和专用部署,在这些场景中减少手动服务器端配置是有益的。
包含自定义工具箱
自定义工具箱(无论是 .atbx 还是 .pyt)均被视为用户定义的工具箱,与 ArcGIS Pro 安装的系统工具箱相对。 同样,在您的独立或联合 ArcGIS Server 计算机上,系统工具箱作为 ArcGIS Server 安装的一部分包含在内,例如包含“成对缓冲”等工具的分析工具箱。
如果您打算手动将自定义工具箱部署到服务器,可以取消选中合并选项。 取消选中时,发布过程中不会将工具箱复制到服务器。 但是,如果您未将服务属性更新为指向手动部署的工具箱,或根本没有部署工具箱,已发布工具将因缺少关联工具箱而运行失败。 要更新服务属性的工具箱位置,请访问需要修改的地理处理服务的编辑服务属性端点。 通常为 https://organization.example.com/serverwebadaptor/admin/services/servicename.GPServer/edit。 在服务配置中,更新服务属性 JSON 的 properties 部分中 toolbox 的路径。
取消选中此选项也会禁用包含本地 Python 包选项并将其锁定为未选中状态。
此选项默认已选中,确保发布期间将自定义工具箱复制到服务器。
包含本地 Python 包
对于 Python 脚本工具或 Python 工具箱,您可能包含一些 Python 包以更好地组织代码,将某些 Python 函数分离到不同文件夹,或更好地管理和扩展 Python 代码。
如果您决定手动部署 Python 包,可以禁用此合并选项。 如果取消选中,则不会将任何 Python 包复制到服务器。 但是,如果已发布脚本无法访问您部署的包,或者您未手动部署必要的包,缺少这些包将导致已发布工具运行失败。
您永远无需部署 ArcGIS Pro 或 ArcGIS Server 附带的标准 conda 环境中的任何 Python 包。 如果在脚本中使用第三方 Python 包,请参阅部署自定义 Python 包,将其部署到服务器的 conda 环境中。
取消选中此选项将禁用整个本地 Python 包选项,并同样保持未选中状态,因为没有任何 Python 包会被完整复制。
此选项默认已选中,确保发布期间将本地 Python 包复制到服务器。
如果未选中包含自定义工具箱,此选项不可配置且将保持未选中状态。
完整本地 Python 包
如果本地 Python 包具有复杂的文件夹结构,或包含大量文件,合并过程可能会将所有文件(包括任何数据源,无论您是否打算使用)复制到服务器。 例如,如果您有工程文件或图层文件,合并会将所有使用的数据复制到服务器。
禁用此选项将允许合并过程仅将工具使用的文件复制到服务器。
此选项默认已选中,会将整个包复制到服务器。
当包含本地 Python 包选项未选中时,此选项不可配置且将保持未选中状态。
更新相对于服务器的路径
如果工具需要数据才能运行,且您决定将数据复制到服务器或引用服务器上的数据,则数据路径在不同数据位置间可能不同。 选中此选项可确保已发布工具能在服务器上找到复制的数据。
例如,如果工具使用本地数据驱动器上的要素类作为工程数据,一旦 Web 工具发布,在大多数情况下服务器计算机将无法访问该要素类的路径。 在发布过程中,数据被复制到服务器上的特定位置,您的工具将自动更新以指向该特定服务器位置的要素类。 服务器数据的一个示例路径为 C:\arcgisserver\directories\arcgissystem\arcgisinput\servicename.GPServer\extracted\cd\elevation.gdb。
使用引用数据时,选中此选项可确保已发布工具使用您在注册数据源时指定的服务器端路径。 例如,如果在注册数据路径时指定发布者路径和服务器路径相同(如 UNC 路径),选中此选项可确保已发布工具中的路径仍指向该 UNC 路径。
取消选中此选项可确保工具中引用数据的方式保持不变。 但是,无论您决定使用复制数据还是引用数据,都需要确保已发布工具使用的数据路径是可访问的。
此选项默认已选中,必要时会修改数据路径。
仅当尝试共享到 ArcGIS Enterprise 12.1 或更高版本的服务器时,此选项才可配置。
在共享之前运行工具验证
当从历史记录项目共享时,该工具会再次使用原始运行的输入进行验证。 这是重新打开历史记录项目以重新运行工具时发生的相同验证。 重新验证确保工具仍然有效 - 例如,任何数据仍然有效,且工具的源脚本仍然可访问。
禁用此选项将跳过这些验证检查。 您需要确保已发布工具使用的所有数据均可访问。
此选项默认已选中。
如果直接共享工具箱或任务,由于没有可运行验证的历史记录,此选项不可配置且保持未选中。 取消选中包含数据、脚本和工具箱选项时,此规则同样适用。