ArcGIS Server常見問題
錯誤描述
在ArcCatalog中,當成功的建立了server object之後,server object不能被預覽。ArcCatalog顯示下面的錯誤資訊:
“你的選擇不能在當前視圖中顯示.”
導致原因
server屬性中被指定的輸出值和http位置可能不正確。
解決辦法
所有的建立的ArcGIS Server Objects需要被停止。
1 在ArcCatalog中,右擊已經添加的ArcGIS Server,並選擇Server屬性。
2 在目錄頁中,選中已經添加的輸出目錄並點擊編輯。
3 輸出目錄欄位應該指向一個有效目錄,比如 C:\ArcGIS\Output。
如果一個虛擬目錄已經被指定,確認它是有效,並且看上去和下面的格式一樣,
http://<servername>/output
4 如果有錯請更改,然後重新建立server object來確認更改是否有效。
錯誤描述
當在Visual Studio.NET 2003上使用ArcGIS Server .NET 的ADF模板建立一個項目時,返回如下錯誤資訊:
“在伺服器<主機名稱>上的Web網站不可用(Web Site on server <host> is not available)”
導致原因
該模板包含了調用'http://localhost'這一URL的屬性。如果在IIS中禁用了本地主機的服務,則顯示該錯誤資訊。禁用本地服務可能是因為你的Web網站已經為其指定了一個IP地址或者是因為安全方面的考慮。
解決辦法
啟用對 http://localhost/的訪問決定於您安裝的是哪種類型的作業系統,是伺服器還是非伺服器。
對於非伺服器的作業系統:
1.點擊Internet資訊服務控制台,右鍵選擇預設網站的屬性,開啟屬性對話方塊,並選擇網站標籤頁。
2.修改IP地址欄為"(全部未分配)"。
3.重啟IIS。
在IE瀏覽器中瀏覽剛剛啟用的 http://localhost/ 服務,在Visual Studio .NET 2003 中用模板建立項目,現在應該是成功的了。
對於Windows Server作業系統:
1. 在Internet資訊服務控制台上建立一個新的Web網站。
2. 為其分配IP地址:127.0.0.1。意味著只能在本機電腦上啟用該網站。
3. 瀏覽Web網站的根目錄,比如C:\Inetput\wwwroot 。
此時在Visual Studio .NET 2003 中用模板建立項目應該沒有問題。
錯誤描述
當啟動一個服務物件時,出現下述錯誤資訊:“在機器XXX上建立Server 環境(Context)失敗。拒絕訪問output檔案夾。”
導致原因
ArcGIS Server Object Container的帳號必須擁有虛擬資料夾的寫入權限。例如虛擬資料夾為: c:\inetpub\wwwroot\temp
解決辦法
執行如下步驟:
右鍵點擊虛擬資料夾如: c:\inetpub\wwwroot\temp
1.選擇屬性->安全性標籤頁.
2.添加帳號並賦予寫入權限,使其可以讀寫圖片.
3.點擊OK,關閉屬性對話方塊.
錯誤描述
使用下面的代碼,來進行使用字型中的符號進行點要素渲染的時候,會出現地圖消失的問題。
下面的代碼是用來產生需要在渲染過程中使用的點符號的,使用的是宋體中index為21的字作為符號。
private static ICharacterMarkerSymbol
GetMarkerSymbol(IServerContext pServerContext,PowerNet.GISCommon.SymbolClass pSymbolClass)
{
System.Drawing.Font drawFont = new
System.Drawing.Font("宋體", 21);
ICharacterMarkerSymbol charMarker=
pServerContext.CreateObject("esriDisplay.CharacterMarkerSymbol") as
ICharacterMarkerSymbol;
charMarker.Font = (stdole.IFontDisp)
OLE.GetIFontDispFromFont(drawFont);
charMarker.CharacterIndex = pSymbolClass.CharacterIndex;
IRgbColor pRGB = pServerContext.CreateObject("esriDisplay.RgbColor") as IRgbColor;
pRGB.Red=pSymbolClass.SymbolColorR;
pRGB.Green=pSymbolClass.SymbolColorG;
pRGB.Blue=pSymbolClass.SymbolColorB;
charMarker.Color = pRGB as IColor;
charMarker.Size = pSymbolClass.SymbolSize;
return charMarker;
}
導致原因
使用ArcGIS Engine進行開發時,對於點要素類,是可以使用指定字型中的符號作為渲染的符號的,但是在arcgis server的應用中來實現這個過程,就稍微有點不同,導致的原因還是本機物件和遠程對象進行了混用?對於ao對象,可能大家都已經有這個概念,就是一般不在本地建立對象,但是對於其它的對象,比如.net中的對象,可能就沒有太注意了,所以才導致了這個問題的出現。
解決辦法
這個問題的解決辦法是這樣的,為了避免在程式中使用下面這句代碼:
System.Drawing.Font drawFont = new
System.Drawing.Font(pSymbolClass.FontSymbolName, 21);
可以採用先在*.Style檔案中把符號都配好,然後轉成*.ServerStyle檔案,然後使用下面的代碼得到相應的符號:
private IMarkerSymbol createSymbol(IServerContext pServerContext,string index)
{
IStyleGallery pSGallery = pServerContext.CreateObject("esriDisplay.ServerStyleGallery") as IStyleGallery ;
IStyleGalleryStorage pSGStorage = pSGallery as IStyleGalleryStorage ;
pSGStorage.TargetFile = @"D:\xjw.ServerStyle";
pSGStorage.AddFile (@"D:\xjw.ServerStyle");
IEnumStyleGalleryItem pEnumGItem = pSGallery.get_Items("MarkerSymbols",@"D:\xjw.ServerStyle",index);
pEnumGItem.Reset ();
IStyleGalleryItem pSGItem = pEnumGItem.Next();
IMarkerSymbol pMSymbol = pSGItem.Item as IMarkerSymbol;
IRgbColor pRGB = pServerContext.CreateObject("esriDisplay.RgbColor") as IRgbColor;
pRGB.Red=255;
pRGB.Green =0;
pRGB.Blue=0;
pMSymbol.Color=pRGB;
pMSymbol.Size=18;
pEnumGItem=null;
pSGItem=null;
return pMSymbol;
}
錯誤描述
這個錯誤可能發生在.net中的ArcGIS Primary Interop Assemblies(PIA)。在錯誤資訊中的CLSID可能會變化:
"COM object with CLSID {XXXX} is either not valid or not registered"
導致原因
在ArcGIS安裝中選擇安裝.NET的支援,PIAs就會為所有的ArcGIS庫而安裝上。
當在嘗試使用一個物件程式庫的PIA時,而這個物件程式庫根本就沒有安裝時,錯誤就會發生,因為Com對象不能被初始化。
例如,3DAnalyst擴充模組沒有被安裝,而嘗試使用ESRI.ArcGIS.Analyst3D命名空間中的對象,使用如下代碼:
ESRI.ArcGIS.Analyst3D.IAnimationTrack aTrack = new ESRI.ArcGIS.Analyst3D.AnimationTrackClass();
一個錯誤就會發生:
"Error number -2147221164: COM object with CLSID {4FEDC9CB-A7BE-11D5-B2A0-00508BCDDE28} is either not valid or not registered."
解決辦法
編程只能使用安裝了的物件程式庫。為了開發使用一個特殊的庫,那就需要重新安裝ArcGIS產品,確保所需的擴充模組都被安裝,以及所有的.NET的支援選項。額外的許可會被需要。
1 識別使用的對象,以及這些對象所屬的命名空間。
2 識別命名空間所屬的產品。例如,為了使用ESRI.ArcGIS.Analyst3D命名空間中的對象,在開發協助中瀏覽庫總體說明那一頁。會有註解說明這個命名空間是有ArcGIS Engine產品的3D擴充模組,ArcGIS desktop 3D擴充模組,以及ArcGIS Server的3D擴充模組支援。
3 重新安裝產品,確保所需的擴充模組得到安裝,且保證.Net支援選項被選中。
錯誤描述
當使用ArcGIS開發人員控制項開發應用程式、控制項拖放於表單上的時候,出現以下錯誤資訊:
"該控制項需要一個ESRI Designer 許可。請從工程中移除該控制項。"
導致原因
出現這個資訊是因為ArcGIS Engine Developer Kit 這個產品未在機器上安裝並授權。
ArcGIS Desktop 安裝了以下控制項:
-MapControl
-PageLayoutControl
-GlobeControl
-ReaderControl
-SceneControl
-TOCControl
-ToolbarControl
ArcGIS Desktop 許可僅允許使用MapControl 和 PageLayoutControl 進行開發或設計應用程式。
剩下的其它控制項許可給ArcGIS Engine,並僅能在ArcGIS Engine Developer Kit 已安裝並授權時用於開發。
解決辦法
購買ArcGIS Engine Developer Kit 產品,並在機器上授權以下任意控制項:
-GlobeControl
-ReaderControl
-SceneControl
-TOCControl
-ToolbarControl
有關如何使用這些控制項的詳細資料,以及哪些控制項需要對應哪些許可,請參考ArcGIS Developer Help。例如, 'TOCControl CoClass' 說明主題提到,該控制項只在有ArcGIS Engine 產品時才可用。
錯誤描述
安裝出錯1935
當安裝ArcGIS Server, ArcGIS Desktop, including ArcView, ArcEditor, ArcInfo; or ArcIMS, 都可能發生如下錯誤:
"Error 1935: An error occured during the installation of assembly component {303994BA-6487-47AE-AF1D-7AF6088EEBDB}. HRESULT: -2147024894."
之後點擊'OK' 安裝復原退出.
導致原因
導致原因
這個錯誤發生在系統安裝(Microsoft XML Parser 4 )更新.這現同樣的錯誤資訊將發生在試圖安裝(Microsoft XML Parser 4.0)的時候; 這也可能修改,但是經常會因為其他產品的安裝而影響系統檔案破壞。
解決辦法
步驟:
1. 儘可能停止一些背景程式,例如adware 或 spyware. 有可能也停止Adwatch,在機器上刪除所有的 adware.;
2. 儘可能停止一些Windows服務,控制台 >管理員工具 >服務;
3. 檢查Internet Explorer 6.0的安裝. 檢驗Microsoft service 安裝包和安裝更新;
4. 在安裝產品前請先安裝Microsoft XML 4.0 SP2,這有可能下載其相關聯的一部分;
5. 接著安裝ESRI軟體產品在第4步安裝成功;
錯誤描述
在作業系統是Windows XP SP2、CPU為 AMD Athlon 64系列或 Pentium 4 和 Celeron-D 的機器上安裝ArcGIS 9.0時,出現1904錯誤,系統無法註冊一些 dll 檔案。
導致原因
在Windows XP SP2 中, DEP(資料執行防止)選項預設情況下是開啟的, AMD和Intel新的CUP系列中包含這個選項。資料執行防止是一套硬體和軟體技術用於執行對記憶體的額外檢查,以保護電腦遭受惡意代碼的破壞。
解決辦法
方法一:移除Windows XP的SP2,然後安裝ArcGIS 9.0。
方法二:關閉DEP(資料執行防止),安裝ArcGIS 9.0,安裝完再啟用資料執行防止。具體如下:
1. 以管理員權限登陸Windows XP。
2. 滑鼠郵件點擊“我的電腦”,選擇“屬性”菜單
3. 點擊“進階”頁。
4. 選擇“啟動與恢複”下的“設定”按鈕。
5. 選擇預設作業系統,如下:
"Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn
6. 點擊“編輯” 按鈕開啟boot.ini 檔案,將其中的“”/NoExecute=OptIn”改為“/NoExecute=AlwaysOff”。
7. 儲存檔案,重新啟動電腦。
8. 安裝ArcGIS,此時應該就不會出現1904錯誤了
9. 安裝完ArcGIS以後,將 boot.ini 檔案設定改回來,以重新啟用資料執行防止的安全選項。