ArcEngine調用GP工具許可問題
一、環境:win11,arcgis10.1,vs2012
二、問題描述:在進行普通GP復制、相交操作時候正常,但是執行Erase擦除操作時候提示000824:The tool is not licensed錯誤。
三、問題分析與處理
自己之前做過相關的GP處理,結合報錯信息判斷,應該是許可問題,當前系統的許可授權方式為:
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
1、首先查看工具所需的許可類型(ArcGIS Help 10.1 - 擦除 (Analysis))
Desktop產品的許可分為Basic、Standard、Advanced三個級別;Engine產品許可分為Engine、EngineGeoDB兩個級別。Engine許可相當于Desktop的Basic許可級別,EngineGeoDB許可相當于Desktop的Standard許可。
這里可以看到,普通的相交權限較低,Basic、Standard、Advanced三種許可的都可以使用,但是擦除工具只有Advanced許可可以使用。那么找到原因了在許可初始化時候設置許可類型即可。
//arcgis10.1:Erase、identify許可初始化方法
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop);
IAoInitialize ao = new AoInitialize();
ao.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeAdvanced);
通過上述方法初始化許可成功解決。
這里使用的是ESRI.ArcGIS.ProductCode.Desktop許可,不要使用Engine或者EngineOrDesktop
四、注意事項
注意許可的初始化方式:
1、通過LicenseControl控件初始化許可;
2、像本文中使用代碼初始化許可;
這里一定需要注意,兩種許可初始化方式不要同時使用,否則會有沖突,同時一個許可在一個程序里面只能初始化一次,如果出現多次初始化也是不起作用的,這兩個一定要注意,我一開始就是犯了這個錯誤,同時使用了代碼初始化和LicenseControl控件,浪費了很長時間。
在此期間還嘗試過其他的方式,包括:
設置GP工具的后臺運行屬性
設置arcmap的擴展屬性
posted on 2025-08-11 18:04 jingkunliu 閱讀(34) 評論(0) 收藏 舉報





浙公網安備 33010602011771號