ListMapServices (arcpy.mapping)

Краткая информация

Прежние версииПрежние версии:

Этот метод является устаревшим, начиная с ArcGIS 10.1 for Server и ArcGIS 10.1 for Desktop, и возвращает ошибку исполнения. Обратитесь к документации ArcGIS по использованию нового ArcGIS for Server интерфейса Administrator API.

Список имен картографических сервисов разработанного ArcGIS for Server.

Обсуждение

Этот метод является устаревшим, начиная с ArcGIS 10.1 for Server и ArcGIS 10.1 for Desktop, и возвращает ошибку исполнения.

ArcGIS 10.1 for Server имеет новую архитектуру, поэтому вам может потребоваться изменить способ вашей работы с сервером. Обратитесь к разделу справки для получения дополнительной информации: Чего ожидать при переходе на ArcGIS for Server.

Можно получить список картографических сервисов с помощью ArcGIS for Server интерфейса Administrator API, доступного через ArcGIS Site Directory. По умолчанию используется следующий URL ArcGIS for Server Site Directory:

http://<имя сервера>:6080/arcgis/admin

ПримечаниеПримечание:

URL Site Directory может быть другим, если вы настроили ArcGIS for Server Web Adaptor для работы с вашим сайтом. Например, включать номер порта (6080) может быть необязательно. Просмотрите конфигурацию Web Adaptor, чтобы получить корректный URL.

Ниже приведен пример использования Python и интерфейса ArcGIS for Server Administrator API для получения списка картографических сервисов:

ПримечаниеПримечание:

Пример кода для создания токена ArcGIS for Server содержится здесь: DeleteMapService.

import json, urllib2

server = "<server>"
port = "6080"
token = '<token string>'
baseUrl = "http://{}:{}/arcgis/admin/services".format(server, port)

def getCatalog(token):
  catalog = json.load(urllib2.urlopen(baseUrl + "/" + "?f=json&token=" + token))
  print 'Root' 
  if "error" in catalog: return
  services = catalog['services']
  for service in services:
    response = json.load(urllib2.urlopen(baseUrl + '/' + service['serviceName'] + '/' + service['type'] + "?f=json&token=" + token))
    print '  %s %s (%s)' % (service['serviceName'], service['type'], 'ERROR' if "error" in response else 'SUCCESS')
  folders = catalog['folders']
  for folderName in folders:
    catalog = json.load(urllib2.urlopen(baseUrl + "/" + folderName + "?f=json&token=" + token))
    print folderName
    if "error" in catalog: return
    services = catalog['services']
    for service in services:
      response = json.load(urllib2.urlopen(baseUrl + '/' + service['serviceName'] + '/' + service['type'] + "?f=json&token=" + token))
      print '  %s %s (%s)' % (service['serviceName'], service['type'], 'ERROR' if "error" in response else 'SUCCESS')

getCatalog(token)

Вы также можете получить список картографических сервисов с помощью интерфейса ArcGIS for Server REST API, доступного через ArcGIS Services Directory. По умолчанию используется следующий URL ArcGIS for Server Services Directory:

http://<имя сервера>:6080/arcgis/rest/services

Для начала работы с ArcGIS for Server Services Directory и REST API обратитесь к справочной системе Services Directory.

Ниже представлен пример использования Python и интерфейса ArcGIS for Server REST API для получения списка картографических сервисов:

import json, urllib2

server = "<server>"
port = "6080"
baseUrl = "http://{}:{}/arcgis/rest/services".format(server, port)

def getCatalog():
  catalog = json.load(urllib2.urlopen(baseUrl + "/" + "?f=json"))
  print 'ROOT' 
  if "error" in catalog: return
  services = catalog['services']
  for service in services:
    response = json.load(urllib2.urlopen(baseUrl + '/' + service['name'] + '/' + service['type'] + "?f=json"))
    print '  %s %s (%s)' % (service['name'], service['type'], 'ERROR' if "error" in response else 'SUCCESS')
  folders = catalog['folders']
  for folderName in folders:
    catalog = json.load(urllib2.urlopen(baseUrl + "/" + folderName + "?f=json"))
    print folderName
    if "error" in catalog: return
    services = catalog['services']
    for service in services:
      response = json.load(urllib2.urlopen(baseUrl + '/' + service['name'] + '/' + service['type'] + "?f=json"))
      print '  %s %s (%s)' % (service['name'], service['type'], 'ERROR' if "error" in response else 'SUCCESS')

getCatalog()

Синтаксис

ListMapServices (connection_url_or_name, server, {connection_username}, {connection_password}, {connection_domain})
ПараметрОбъяснениеТип данных
connection_url_or_name

Строка, содержащая URL ArcGIS for Server для получения списка сервисов.

String
server

Строка, содержащая имя хоста ArcGIS for Server.

String
connection_username

Строка, содержащая имя пользователя для подключения к ArcGIS for Server. Для получения списка картографических сервисов это имя пользователя должно входить в группу администраторов ArcGIS for Server. Переменная необходима только для подключения к UNIX/Linux ArcGIS for Server.

(Значение по умолчанию — None)

String
connection_password

Строка, содержащая пароль для подключения к ArcGIS for Server. Переменная необходима только для подключения к UNIX/Linux ArcGIS for Server.

(Значение по умолчанию — None)

String
connection_domain

Строка, содержащая доменное имя для подключения к ArcGIS for Server. Переменная необходима только для подключения к UNIX/Linux ArcGIS for Server.

(Значение по умолчанию — None)

String
Возвращено значение
Тип данныхОбъяснение
List

Список Python с картографическими сервисами.

5/10/2014