ArcGIS Server 10.1+:
Vous pouvez le faire, mais il n'y a pas de fonctionnalité prête à l'emploi pour cela. Les informations sur les classes d'entités utilisées (et à partir de quels fichiers de base de données elles proviennent) ne sont pas exposées via ArcGIS Server Manager / Répertoire des services / Admin REST.
Cependant, ces informations sont stockées en tant que métadonnées de service dans le C:\arcgisserver\directories\arcgissystem\arcgisinput\ServicePaths.MapServer\extracted
dossier du manifest.xml
fichier (il existe à la fois .json et .xml). Le fichier .Xml contient des informations plus détaillées, je recommande d'analyser ce fichier (mais vous pouvez commencer par .json d'abord pour avoir l'idée).
Les deux balises que vous devez examiner dans le fichier .xml sont <Name>ServicePaths</Name>
: le nom du service et plusieurs <OnPremisePath>C:\GIS\Temp\test.gdb\StopsSandiego</OnPremisePath>
balises qui contiendront les noms des classes d'entités et leur chemin d'accès au catalogue / géodatabase.
En ce qui concerne le code, vous pouvez utiliser Python pour analyser ce fichier .xml, obtenir un dictionnaire avec cette structure:
{str:(tuple)} #data type
{servicename:(featureclasspath)} #pseudocode
{servicename:(fc1,fc2,fc3); servicename1:(fc1,fc2); servicename2:(fc5);...} #pseudocode
Lorsque vous avez terminé, vous pouvez écrire une fonction qui renverra la clé du dictionnaire (nom du service) en fonction de la valeur (nom de chemin d'accès à la classe d'entités que vous fournissez). Cela vous permettra de savoir quels services vous devez arrêter pour libérer le verrou de la classe d'entités.
MISE À JOUR avril 2016: vous pouvez le faire avec le manifeste du service API REST pour le service, ajouté dans ArcGIS Server 10.1 SP1:
http://localhost:6080/arcgis/admin/services/Parks/Landmarks.MapServer/iteminfo/manifest/manifest.%format%
où %format%
est json
ouxml
Un article avec une réponse complète est ici: Script Python pour imprimer les classes d'entités qui font référence aux services de carte AGS
ArcGIS Server 10.0:
Accédez à C:\Program Files (x86)\ArcGIS\Server10.0\server\user\cfg
et ouvrez le fichier .cfg associé à votre service. Recherchez la <FilePath>
balise. Vous pouvez maintenant parcourir tous les fichiers .cfg dans ce dossier avec Python et obtenir des informations sur les fichiers .mxd utilisés et puisque vous avez accès au .mxd, vous pouvez obtenir chaque chemin de source de données de couche et donc les noms de classe d'entités.
<ServerObjectConfiguration>
<Description></Description>
<Properties>
<FilePath>D:\temp\TempService.mxd</FilePath>