友好阅读链接:(http://swj.me/2015/08/26/batchPublishtools/)

update0918:

  1. 修复了创建链接文件时而出错的bug
  2. 修复了在24011的警告已处理的情况下,依然出现提示的异常。
  3. 将多个脚本文件,压缩成一个脚本文件。压缩后的脚本文件名称为Publishservice.py,使用如下命令执行工具
python Publishservice.py
  1. 重新创建了一个repo,更改了脚本git 存放的地址,新地址如下:

    BathPublishMapServices

==============================================================================

介绍

在日常工作中,经常碰到用户多次诉求需要批量发布服务。esri官方发布方式,只能是通过arcMap连接server去逐个发布。但是其也为开发者提供了批量发布服务两种方式:一种是通过arcpy的脚本,一种是通过其提供的arcgis admin api

本工具使用arcpy的形式实现,并使用cmd 命令行执行。一开始通过tkinter ui的形式进行实现。但是最后发现tkinter太不人性,果断弃之。

环境

  • windows
  • python 2.7.x
  • arcpy 10.1+

实现流程

实现流程即是arcgis for server的发布流程

  1. 输入GIS服务器的信息

    包括GIS服务器的IP,站点管理员用户名和密码,mxd文件所在的文件夹,当集群环境时,指定服务发布的cluster,默认是的default,服务发布到server的目录名,默认是root
  2. 创建server链接文件

    在当前脚本执行的目录下,生成一个后缀为.ags 的server链接文件
  3. 遍历mxd文件

    遍历mxd文件夹中的mxd文件,并检查该文件是否存在数据源损坏
  4. 生成sddraft文件
  5. 过渡sd文件
  6. sd文件上传到服务器端

使用

去下面地址下载脚本。将整个BatchPublishMapService 目录下载

运行cmd,cd 到BatchPublishMapService。执行如下脚本. 如果出现python是无效的命令的错误。请配置环境变量

python BatchPublishMapService.py

根据命令行中的提示输入相关的参数。如下图所示:

发布过程的详细信息,以及分析操作的信息输出

在manager中查看批量发布的服务

注意

  1. 服务名为mxd文件名。如需要指定服务名,请将mxd文件名改为对应的文件名
  2. 输入的用户名和密码为站点管理员的用户名和密码
  3. 该程序没有注册数据源的功能,当数据源路径,已经注册,数据不拷贝到服务器上。如果没有注册,数据则默认拷贝到服务器
  4. 该工具没有打包。本想打包成exe,但是arcpy打包存在问题。

后续更新

由实际反馈和使用情况决定

下载地址

BathPublishMapServices

ArcGIS Server管理工具之批量发布动态地图服务工具.md的更多相关文章

  1. ArcGIS Server 禁用/rest/services路径(禁用服务目录)

    ArcGIS Server服务目录(路径如:http://<hostname>:6080/arcgis/rest/services)默认可以不需要登陆直接打开.效果如下图. ArcGIS服 ...

  2. arcgis for android访问arcgis server上自己制作部署的地图服务

    转自:http://gaomw.iteye.com/blog/1110437 本项目的开发环境是eclipse3.5 + ADT11插件+arcgis for andorid 插件 + arcgis ...

  3. ArcGis Server安装与使用

    ArcGis Server安装 下载ArcGisServer 双击Setup.exe,然后一直下一步. 安装完成后,点击完成,弹出如下界面: 选择第三个选项,然选择[.ecp]后缀名的授权文件. 然后 ...

  4. ArcGIS Enterprise 10.7.1新特性:批量发布服务

    ArcGIS Enterprise 10.7.1提供了批量发布GIS服务的功能,能大大简化GIS系统管理员的工作量. 作为发布人员和管理人员,支持向Portal for ArcGIS添加云存储.文件共 ...

  5. ArcGIS Server学习之问题:ArcGIS Server10.5发布地图显示空白

    一.安装ArcGIS10.5 参考ArcGIS 10.5 for Desktop 完整安装教程(含win7/8/10 32/64位+下载地址+亲测可用) | 麻辣GIS 二.安装ArcGIS Serv ...

  6. 【教程】发布NAServer到ArcGIS Server 10.4上[超详细]

    前阵子对ArcGIS API For JavaScript的网络分析有兴趣,但是不知道其数据是如何获取的. 查阅API知道,AJS的网络分析只有三个功能:最短路径(RouteTask).最近设施点(C ...

  7. JavaWeb和WebGIS学习笔记(六)——使用ArcGIS for Server发布地图服务

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  8. ArcGIS Server发布服务,报错001270

    错误001270 这个问题一般是因为数据源文件太大导致. 解决办法:  对于001270的错误,官方帮助中给出了一些可能的原因并提供了相应的解决办法(http://resources.arcgis.c ...

  9. OpenLayers调用arcgis server发布的地图服务

    有两种方式可以调用arcgis server发布的地图服务,一种是rest,一种是wms.  地图的投影为900913,arcgis server为10.0版本,地图服务的空间参考为3857.   与 ...

随机推荐

  1. iOS 关于图片地理位置隐私信息的分析和读取

    今天突然想到微信朋友圈发照片,涉及个人隐私的地理位置是否外泄.因为iphone拍照的照片都会带有地理位置等信息,我们先来实现怎么读取里面的安全信息,然后再来分析 #import "ViewC ...

  2. echarts报表

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  3. 突破MIME限制上传

    方法:找一个正常的可上传的查看其的MIME类型,然后将马子的MIME改成合法的MIME即可.

  4. [Busybox]Busybox制作文件系统

    问题: 1.目前busybox和bootstrap两种方案制作文件系统,哪种开发周期更短,更加简单? 2.如果需要在文件系统中添加某个package,要怎么做,如vim/udhcpd等? 转自:htt ...

  5. c/c++常见关键字解释

    c语言中常见关键字:  char :    =>声明字符型变量或函数 double :=>声明双精度变量或函数 enum :  =>声明枚举类型 float:     =>声明 ...

  6. Insubstantial 6.2 Release

    http://shemnon.com/speling/2011/04/insubstantial-62-release.html

  7. Spring Boot简化了基于Spring的应用开发

    Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的.产品级别的Spring应用. Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可 ...

  8. 敏捷软件开发实践-Code Review Process(转)

    介绍: 在敏捷软件开发中,从代码的产生速度上来看,要比 传统Waterfall产生速度高很多.因为我们把时间安排的更加紧凑了.那么这么多的代码,如何能保证这些代码质量呢?很多人可能直接想到静态代码检测 ...

  9. Struts2_day03--向值栈放数据

    向值栈放数据 1 向值栈放数据多种方式 第一种 获取值栈对象,调用值栈对象里面的 set 方法 第二种 获取值栈对象,调用值栈对象里面的  push方法 第三种 在action定义变量,生成变量的ge ...

  10. THINKPHP5加载公共头部尾部模板方法

    之前在3.2中用 <include file="public/header" /> 后来发现在thinkphp5中应该这样写才行 {include file=" ...