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 阅读(32) 评论(0) 收藏 举报
 
                     
                    
                 
                    
                




 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号