如果您具有有限的服务器访问权限(例如,在云环境或安全环境下),则可以创建一个能够与服务器管理员共享的服务定义文件,以便以后发布。服务定义文件被封装为一个便携文件,其中包含了服务属性、功能和服务类型等相关信息。另外,您可对服务定义文件进行配置以包含 GIS 资源所引用的数据。
例如,假设您是一位 GIS 分析师,管理着一个由几十个编辑人员不断进行修改的地理数据库。而且,每个月都需要对此数据执行质量保证检查流程,以保证其达到您所在组织的数据完整性标准。在对数据执行了质量检查之后,您可以使用服务定义文件来捕捉已经过验证的地理数据库,并将其传送给服务器管理员,以便发布到 ArcGIS Server 站点。
注:
服务定义文件根据在创建时是连接到 ArcGIS Server 站点还是连接到门户组织而不同。在创建服务定义文件时,如果您连接到的是 ArcGIS Server 站点或选择包括 GIS 资源引用的数据,则只能在 ArcGIS Server 站点中使用文件,无法将其发布到 ArcGIS Enterprise 门户或 ArcGIS Online。同样,在创建服务定义文件时,如果选择的是连接到组织,则无法将服务定义文件发布至 ArcGIS Server 站点。
可以从 ArcGIS Server Manager 发布服务定义文件 (.sd)。
创建服务定义文件
您可以使用任何类型的 GIS 资源创建服务定义文件:地理数据库、地址定位器、地图文档、地理处理模型等。
ArcGIS Desktop 提供了一个保存服务定义文件向导,您可以通过该向导将地图文档、地理处理模型、地理数据库和其他 GIS 资源另存为服务定义文件。有关完整说明,请参阅在 ArcMap 中创建服务定义。
在 ArcGIS Pro 中,您可以使用 arcpy.sharing 模块为地图服务、地图图像图层、web 切片图层和 web 要素图层创建服务定义草稿 (.sddraft) 文件。您还可以使用函数为地理编码服务 (CreateGeocodeSDDraft)、地理处理服务 (CreateGPSDDraft) 和图像服务 (CreateImageSDDraft) 创建 .sddraft 文件。得到草稿文件后,您可以使用 ArcPy 将文件过渡并上传到服务器站点。
在创建服务定义文件之前,请考虑以下情况:
已经配置服务器连接
如果您或服务器管理员已经配置了一个服务器连接以便在发布到 ArcGIS Server 时使用,则您可在创建服务定义文件时直接选择此连接。选择此选项将会创建一个服务定义文件,服务器管理员可以立即将其发布到 ArcGIS Server 站点。
如果在创建服务定义文件时指定服务器连接,则需要确定是否希望此文件包含 GIS 资源所引用的数据。
- 如果不希望服务定义文件包含 GIS 资源所引用的数据,则需要在创建该文件之前将数据注册到服务器。数据注册可为服务器提供数据位置的相关信息,而且在多台机器上发布时,还有助于服务器了解如何调整数据路径。在发布时,服务将继续引用 GIS 资源中包含的原始数据。不会在服务器上保存另外副本。
- 如果希望服务定义包含 GIS 资源引用的数据,则请勿将数据注册到服务器。GIS 资源引用的所有数据都将封装到服务定义文件中。在发布时,会将服务及其关联的数据上传到服务器中。请注意,如果在发布时,服务器已设置为不允许数据复制,则无法发布包含数据的服务定义。
已经断开服务器连接或访问受限
如果当前已经断开服务器连接或无法访问服务器连接,则可将服务定义文件配置为没有与 ArcGIS Server 的可用连接。在上述工作流中,您将创建一个在发布时需要配置为使用服务器连接的服务定义文件。
如果在创建服务定义文件时未指定服务器连接,则需要确定是否希望此文件包含 GIS 资源引用的数据。如果您不这样做,则数据必须位于 ArcGIS Server 站点可以访问的位置。不必将数据位置注册到服务器上。在发布时,服务将继续引用 GIS 资源中包含的原始数据。不会在服务器上保存另外副本。
在使用 arcpy.sharing 模块来创建服务定义文件时,您可以将 offline 属性指定为 true。这样就不必提供服务器 URL 或连接文件。
过渡服务定义文件
arcpy.sharing 模块和上面列出的其他 ArcPy 函数将创建 .sddraft 文件。在将服务定义文件上传到 ArcGIS Server 之前,您需要过渡文件。StageService 函数可将 .sddraft 文件转换为可上传的 .sd 文件。
从 ArcGIS Server Manager 发布服务定义文件
可使用 ArcGIS Server Manager 将服务定义文件发布到 ArcGIS Server。
- 打开 ArcGIS Server Manager,然后以发布者或管理员的身份登录到 ArcGIS Server 站点。
- 单击服务 > 管理服务 > 发布服务。
- 单击浏览按钮浏览到要发布的服务定义文件,或者输入文件的路径。
您只能浏览运行 Server Manager 的计算机的文件系统。如果希望浏览到其他计算机上的位置,则在浏览前映射驱动器。
注:
Server Manager 只允许将服务定义 (.sd) 文件发布到服务器。如果要发布其他类型的 GIS 资源,请使用 ArcMap。有关说明,请参阅在 ArcGIS Desktop 中发布的服务。
- 单击下一步。
- 输入服务的新名称(可选)。名称长度不能超过 120 个字符,并且只能包含字母数字字符和下划线。
- 默认情况下,服务定义将发布到服务定义配置中所指定的服务器文件夹。如果要更改服务定义将发布到的文件夹,可从下拉列表中选择文件夹。
注:
无法将服务定义发布至托管、系统、或 ArcGIS Server 的实用程序文件夹。“系统”和“工具”文件夹是为预配置服务保留的。托管文件夹包含发布到 ArcGIS Enterprise 门户的托管服务。该文件夹只有在您的 ArcGIS Server 站点为门户托管服务器的情况下使用。
- 仅支持默认聚类,因此请不要改动聚类的默认设置。
- 如果希望在发布完成后立即使用服务,请立刻选择开始服务。
如果服务定义文件通过缓存切片方案配置,并且您选择立即启动服务,则还可以选择在发布和启动该服务时在服务器上自动构建缓存。要执行此操作,选择启动服务时自动构建缓存选项。
- 单击下一步。
- 选择启用或禁用服务功能。
- 单击发布。
注:
如果您发布的服务定义文件含有数据,数据大小和网络带宽将影响发布所用的时间。大小超过 2 GB 的服务定义无法使用 Microsoft Internet Explorer 或 Mozilla Firefox web 浏览器进行发布;因此超过 2 GB 的服务定义需使用 Google Chrome。
现在您的服务正在 ArcGIS Server 站点运行。如果选择开始服务并且服务没有缓存,网络中的其他用户和客户端便可开始使用该服务。如果 ArcGIS Server 管理员允许 Web 访问服务,则您的服务此时在 Web 上也可用。
如果自动为服务构建缓存,则可在 ArcMap 或 Server Manager 中查看缓存状态。有关详细信息,请参阅查看缓存完成状态。