使用 ArcPy 在 ArcGIS 10.1 中發布地圖服務,需同時啟用 WMS 能力。
已解決,具體參考 Esri 官方文檔:
ArcGIS 10.1 Help: Enable WMS capability when publishing a map service with ArcPy
MapServer 服務定義草稿(.sddraft)<TypeName>WMS</TypeName> 到 <Capabilities> 節點arcpy.StageService 編譯為 .sdarcpy.UploadServiceDefinition 發布到 Serverimport arcpy, xml.dom.minidom as DOM
# 1. 創建草稿
arcpy.mapping.CreateMapSDDraft(map_doc, sddraft_path, service_name, 'ARCGIS_SERVER',
connection_file, True, None, summary, tags)
# 2. 修改 XML 啟用 WMS
doc = DOM.parse(sddraft_path)
type_names = doc.getElementsByTagName('TypeName')
for type_name in type_names:
if type_name.firstChild.data == 'WMS':
# 找到父節點 Configuration,設置 Enabled = 'true'
config = type_name.parentNode
for child in config.childNodes:
if child.tagName == 'Enabled':
child.firstChild.data = 'true'
break
doc.writexml(open(sddraft_path, 'w'))
# 3. 編譯與發布
arcpy.StageService_server(sddraft_path, sd_path)
arcpy.UploadServiceDefinition_server(sd_path, connection_file)
capabilities 需包含 "WMS"