Skip To Content

Exemple : publication de différents types de service à l'aide de définitions de services

Une définition de service (.sd) encapsule un service dans un seul fichier transférable, en insérant éventuellement des données SIG source. L'outil Charger la définition du service charge une définition de service sur le serveur et la publie. Il est accessible à partir du site-package ArcPy inclus avec ArcGIS Desktop.

L'exemple Python suivant parcourt un dossier donné, recherche les définitions de service qui y sont stockées (à l'exclusion des sous-dossiers) et les publie sur ArcGIS Server. Vous avez simplement besoin d'un emplacement de données, du chemin d'accès au fichier de connexion à ArcGIS Server et du nom du dossier cible sur ArcGIS Server. Les définitions de service peuvent être de n'importe quel type.

# Publishes all service definitions in an operating system directory
#  (excluding subfolders)
import arcpy, os

# Define path to SDs
wrkspc = "C:/data"
sdDir = wrkspc + "/SDs"

# Provide path to connection file
# To create this file, right-click a folder in the Catalog window and
#  click New > ArcGIS Server Connection
con = wrkspc + "/connections/arcgis on myserver_6080 (publisher).ags"

# Destination folder name on ArcGIS Server
serverFolder = "TestPublish"

# Loop through all items in folder
sdList = os.listdir(sdDir)

for sd in sdList:
    
    # Construct path to item
    extension = os.path.splitext(sd)[1] #Get file extension
    sdPath = os.path.join(sdDir, sd)

    # Check if item is an SD file and, if so, try to publish
    if os.path.isfile(sdPath) and extension == ".sd":    
        try:     
            arcpy.UploadServiceDefinition_server(sdPath, con, "", "", "EXISTING", serverFolder)
            print "Published " + sd + " with no errors reported."
            
        except:
            print "Could not complete publishing operation for " + sd + "."

        print arcpy.GetMessages()