標籤:

由ArcGIS Pro鬧出的冷笑話

從1.3版本開始接觸ArcGIS Pro,流暢的64位原生應用程序,靚麗的ribbon界面,二三維一體的極致體驗,讓我們看到變革的時候到來,傳統的桌面使用者相信現正在遷移過來,並且也吸引了大量新使用者。

ArcGIS Pro

但是我的機器在使用ArcGIS Pro發布服務時,總是出現Failed to check sharing process status,中文為:「檢查共享流程狀態失敗」錯誤,從1.3,1.4,1.4Alpha4,2.0,2.0.1依然是這樣。

Failed to check sharing process status

雖然狀態檢查失敗,但並不影響服務發布,最後在Portal中都是可以看到發布成功的服務

開始我以為是軟體沒安裝好,或者是Portal的配置有問題。於是嘗試向ArcGIS Online上發布,還是同樣的報錯。

後來通過與同事以及美國Esri Support的溝通,他們提供了一個官方幫助文檔鏈接pro.arcgis.com/zh-cn/pr

裡面說到」可在 C:Users\AppDataLocalESRIArcGISProStagingSharingProcesses 中找到狀態報告「

我按照自己用戶名路徑

C:UsersEsriAppDataLocalESRIArcGISProStagingSharingProcesses

然而並沒有該路徑的文件夾,也就是說出現這個報錯,是因為ArcGIS Pro沒有找到狀態日誌文件,那麼日誌寫到哪去了呢?

通過文件夾搜索,最後找到了存儲日誌狀態的文件夾。

路徑為

C:UsersEsriArcGISProAppDataLocalEsriStagingSharingProcesses

日誌文件

到此,我們可以總結一下:當通過ArcGIS Pro發布服務時,狀態日誌並沒有寫到官方文檔提到的C:UsersesriAppDataLocalESRIArcGISProStagingSharingProcesses路徑下,卻莫名其妙地寫到C:UsersEsriArcGISProAppDataLocalEsriStagingSharingProcesses里,對比一下兩個路徑,深度一致,可以看到ArcGISPro這個文件夾位置不同。從報錯來看,ArcGIS Pro讀取日誌文件狀態可能是按照官方文檔說的路徑。

因此,報錯的機理算是找到了,但是為什麼會造成路徑不同呢?

美國Esri Support給出的建議是:新建一個操作系統賬戶,使用該賬號登錄系統,然後再發布服務看看是否還報錯。

果然老美的嘗試建議是沒問題,不會再報錯,日誌寫到正常的路徑下。

然後老美解釋是因為操作系統賬戶是corrupt user profile,這裡我不知道如何翻譯,但是問題在我的機器上並沒有解決,不能為了這個問題,換一個操作系統賬戶。

想了許久這個問題。有以下猜想:

我的操作系統用戶名是esri,ArcGIS Pro在安裝的時候,會初始化用戶路徑,本來esri這個詞是ArcGIS軟體中關鍵字,就好比編寫程序的變數名不能與該語言內設的關鍵字衝突一樣。

所以ArcGIS Pro初始化狀態日誌路徑出現了混亂現象。

上面說了那麼多,問題始終可能會存在,那麼有沒有可行的解決方案呢?

經過多次嘗試,答案是有的。

首先我嘗試修改操作用戶名,但貌似沒什麼用。網上說還需要修改對應用戶名的註冊表,感覺這麼做有些風險,所以就放棄了。

好的,說到本質上來:就是找不到預設路徑下的日誌文件所致。那麼為何不自己創建一個路徑呢,然後將C:UsersEsriArcGISProAppDataLocalEsriStaging路徑下的文件都實時同步過來。

這裡就不得不提到曾經遇到的系統盤瘦身方案,利用windows自帶的mklink命令,可以實現將默認C盤安裝的應用程序文件(Adobe 全家桶)遷移到其他盤,程序仍然可以正常使用。

方案就這麼形成了,

首先將C:UsersEsriArcGISProAppDataLocalEsri中的Staging文件夾剪切到C:UsersesriAppDataLocalESRIArcGISPro下,然後以管理員的身份打開cmd窗口

輸入

mklink /J "C:UsersesriAppDataLocalESRIArcGISProStaging" "C:UsersEsriArcGISProAppDataLocalEsriStaging"

然後會出現提示為」C:UsersesriAppDataLocalESRIArcGISProStaging <<===>>C:UsersEsriArcGISProAppDataLocalEsriStaging」創建的聯接

由於我已經鏈接過了,所以會有如下提示。實際這裡就相當於在C:UsersEsriArcGISProAppDataLocalEsri下放了C:UsersesriAppDataLocalESRIArcGISPro中Staging文件夾的快捷方式,即文件夾的軟連接,用過linux系統應該比較熟悉

cmd

接著用Pro發布一個服務試試,果然久未謀面的成功狀態出現了。

發布成功

這個問題從用戶來說,解決方法是避免使用esri這個操作系統用戶名

從ArcGIS Pro開發者來看,儘早修復這個程序邏輯問題應該是最終解決之道。

突然想到一個搞笑案例,分享一下

調試一段有關用戶名的程序,上午測試的時候還好好的,下午測試老是獲取到null,怎麼找都找不到原因,後來後台的哥們說他把用戶名改成了「null」,嗯,現在墳頭的草一丈多了。

現在國內發布了個人版的ArcGIS許可,包括ArcGIS Desktop,ArcGIS Pro,ArcGIS Online賬號,想體驗一把正版的同學可以去嘗嘗鮮!附上地址ArcGIS for Personal Use


推薦閱讀:

在當今GIS中,esri公司是否能代表前沿GIS技術的發展?
我的屌絲giser成長記-研二篇
怎麼正確的走GIS開發這條路?
arcgis api for js入門開發系列十二地圖列印(GP服務)
QGIS 和 ArcGIS 的區別和優缺點有哪些呢?

TAG:ArcGIS |