ArcGis10.0常見錯誤


 

1、 問題:  Arcgis10.0 組件初始化失敗

解決方法:  ESRI.ArcGIS.RuntimeManager.BindLicense(ESRI.ArcGIS.ProductCode.EngineOrDesktop);該語句需要引用ESRI.ArcGIS.Version類庫

 

2、 問題:  無嵌入互操作類

解決方法:  嵌入互操作類 改為 false

 在VS2010中,使用.NETFramework 4.0環境時,ESRI的類庫嵌入式互操作屬性需要設置為False。

 

3、向axMapControl控件中添加shp報錯

問題:向axMapControl控件中添加shp時,出現了“The specified path is invalid”這個錯誤,仔細檢查代碼並無錯誤;而從文件添加Layer則可以,但ToolBarControl無顯示。

解決方法:添加axLicenseControl 控件

 

4、 問題:

解決方法:

   //清除數據集前必須先刷新            

   activeView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,mapControl.get_Layer(0),null);            

  mapControl.Map.ClearSelection();                   

  activeView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, mapControl.get_Layer(0), null);

5、連接SDE空間數據庫時出錯

 

1、SDE認證問題: 使用ArcGIS.KeyGen.exe生成一個epp文件 方法:-->server-->All-->拷貝並保存為*.epp文件。認證時加載該文件即可認證完畢。

2、實例問題: 必須是這樣的:"sde:sqlserver:SHENC-PC\\SQLEXPRESS"

3、可選  pPS.SetProperty("AUTHENTICATION_MODE", "DBMS");

 

6、找不到ESRI.ArcGIS.Utility;的引用  

  在ArcGIS10環境中找不到ESRI.ArcGIS.Utility、ESRI.ArcGIS.Utility.BaseClasses等引用,ArcGIS9.2之后Utility會逐漸被丟棄的,轉而用ADF來代替,把ESRI.ArcGIS.Utility和ESRI.ArcGIS.Utility.BaseClasses改為ESRI.ArcGIS.ADF、ESRI.ArcGIS.ADF.BaseClasses問題解決。
 
另外,9.2中ADF類的引用為ESRI.ArcGIS.ADF和ESRI.ArcGIS.ADF.Connection

在10.0中改為ESRI.ArcGIS.ADF.Local和ESRI.ArcGIS.ADF.Connection.Local

 
7、問題:AxSybologyControl依據ArcGis安裝路徑,加載自帶信息,報“為實例化錯誤!”
     
解決方法: // Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\ESRI\\CoreRuntime", true);
      //將CoreRuntime改為安裝目錄Desktop10.0
                Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\\ESRI\\Desktop10.0", true);
 
 
8、問題:CreateFeatureDataset()失敗 報“no License”錯誤
    featureDataset = featureWorkspace.CreateFeatureDataset(featureDSName, spatialReference);
解決方法:
  直接 在 license Control 中 修改  屬性 選中  extention 項 選中:spatial analyst   或
先:
    esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
            IAoInitialize m_AoInitialize = new AoInitializeClass();
            licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);
            licenseStatus = m_AoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);
9、問題:在窗口里的層層嵌套SplitContainer后,出現最內層SplitContainer內部TocControl控件圖層無法顯示問題
解決方法:
加載完mxd后代后加上axTOCControl1.SetBuddyControl(axMapControl1)即可解決。不過若很多地方要加載mxd話,需要每個地方要加。最佳方法是在代碼最開始執行的地方加上。
 
10、

問題:feature.Delete() 時,對 COM 組件的調用返回了錯誤 HRESULT E_FAIL

解決方法 :  把featureCursor = featureclass.Search(null, true);          //共享內存

      改成featureCursor = featureClass.Search(null, false);                   //不共享內存

 //清除圖層原有實體對象
            //featureCursor = featureClass.Search(null, true);
            featureCursor = featureClass.Search(null, false);                   //不共享內存
            IFeature feature;
            feature = featureCursor.NextFeature();
            while (feature != null)
            {
                feature.Delete();                                   
                //featureCursor.DeleteFeature();
                feature = featureCursor.NextFeature();
            }

 

 11、問題:featureBuffer.Shape = geometry;時 報“No support for this geometry type”錯誤
解決方法:查看FeatureClass中geometry type是否與 geometry中geometry type相同。


 
12、 9. x ESRI.ArcGIS.Display.tagRECT 10 .x 改為 ESRI.ArcGIS.esriSystem.tagRECT
 
13、在64位操作系統中需要在項目的編譯選項中,將Target CPU選擇為x86?
 
14、IMap.ClipGeometry10.x中需要結合IMapClipOptions接口一起使用
 
15、問題:You are not licensed for ArcInfo

  Use the ArcGIS Administrator to view the software availability,change the license manager,or switch the ArcGIS software product.
  
 
  解決方法:  1、可嘗試:解決辦法啟動ArcGIS License Manager服務()。若沒有
         2、使用ArcGIS.KeyGen.exe生成一個License,覆蓋service.txt內容,並在 lincense Adiministrator 中 刷新 及 修改。。 為 localhost
16、未認證問題:the application is not licensed to perform this operation
解決方法:方法一:看是否將ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);錯寫成了:
        ESRI.ArcGIS.RuntimeManager.BindLincense(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
      方法二:將LicenseControl控件初始化為 第二項:geodatabase
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM