1. 程式人生 > 其它 >操作arcgisserver中的地圖服務

操作arcgisserver中的地圖服務

技術標籤:arcisapi 3.xarcgis rest

文章目錄

檔案被ARCsoc.exe鎖定:

檔案被ARCsoc.exe鎖定:
例如:影像服務或者動態服務,會直接讀取原始檔,當我們想要操作原始檔時,就會提示:檔案被ARCsoc.exe鎖定
可以通過arcgis rest api操作地圖服務,比如停止地圖服務:

$.ajax({
    type: "POST",
    url: "http://192.168.1.111:6080/arcgis/admin/services/"
+serviceName+"Cache.ImageServer/stop", data: { 'token': response.token,//攜帶的token 'f': "json" }, dataType: "json" //dataType不能少 })

執行停止服務時需要token:

每次對地圖服務操作時,都需要獲取token進行操作

$.ajax({
    type: "POST",
    url: "http://192.168.1.111:6080/arcgis/admin/generateToken"
, data: { username: "test",//管理賬號 password: "123456",//密碼 client: "referer",//如果將值設定為Referer,則必須指定Referer引數。如果值為ip,則必須指定ip引數。如果值為requestip,則使用發出請求的IP地址。 referer: "http://192.168.1.111:6080",//專案地址,需要與接下啦進行的管理操作同源。 expiration: '60'
,//令牌必須有效的時間(以分鐘為單位)。 f: "json"//響應格式。預設響應格式為html }, dataType: "json", });

拿token再進行地圖服務管理操作:

var tokenvalue = $.ajax({
    type: "POST",
    url: "http://192.168.1.111:6080/arcgis/admin/generateToken",
    data: {
        username: "arcgis",
        password: "123456",
        client: "referer",
        referer: "http://192.168.1.111:6080",//專案地址
        expiration: '60',
        f: "json"
    },
    dataType: "json", 
});
if (tokenvalue) {
    tokenvalue
        .success(function (response) {
            if (response.token) {
                //成功生成token
                console.log(response.token);
                $.ajax({
                    type: "POST",
                    url: "http://192.168.1.111:6080/arcgis/admin/services/"+serviceName+"Cache.ImageServer/stop",
                    data: {
                        'token': response.token,
                        'f': "json"
                    },
                    dataType: "json" 
                })
            }
        }).error(function (err) {
            console.log("操作失敗。err:" + err);
        });
}

幫助文件:
generatetoken: generatetoken
stopservice: stopservice
大佬的部落格: ArcGIS api for javascript 3.x通過‘‘url?token=‘‘動態拼接的方式訪問server的安全服務