多语言展示
当前在线:896今日阅读:167今日分享:16

ArcEngine开发中“ERROR 010096'错误,许可问题

ArcEngine二次开发中“ERROR 010096: 当前没有或未启用 Spatial Analyst (或其他***)许可。”错误的解决办法。
工具/原料
1

Visual Studio2010

2

电脑,ArcEngine开发环境

方法/步骤
2

很明显错误原因是缺少许可,那就奇怪了,有时候明明已经添加了许可空间LicenseControl,如图。也在此许可控件的属性(右键->属性)中设置了许可扩展,为什么还是没有许可,原因是可能许可服务没有启动成功,通过代码来设置许可更加稳定。解决办法如下:

3

第一步,添加许可控件,可以在任何一个窗体上添加,前提是安装好了开发环境。在工具箱中点击许可控件,如图:

4

第二步,打开自己项目的程序入口program.cs,在Main()函数里面写上绑定许可的代码,有三种写法:ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop),这是只安装了开发包 ArcObjects SDKs for Mcrosoft .NET Framework,没有完成ArcGIS Engine的Runtime的安装;或ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);  这是安装了Desktop和Engine的Runtime的写法;或ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine),这是只安装了ArcEngine没有安装Desktop的写法。根据自己的情况来写就行了。如图

5

第三步,再检查许可空间LicenseControl的属性中是否勾选了相关模块的许可,如图所示(我这里是SpatialAnalyst,如果你用到了别的模块,要勾上许可):ArcGIS Engine是最基本的,右边的扩展是根据你所开发的内容来定,如果没有用到这些功能,只勾选左边的ArcGIS Engine即可。

6

第四步,为了保证每次启动程序时不会出现没有许可的问题,在代码中再绑定一次,写出许可模块扩展的代码,在绑定了许可后的地方写上如下代码:IAoInitialize _IAoInitialize = new AoInitializeClass();  _IAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);  _IAoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);  以本人的为例,如图:

7

第五步,这样就完成了许可的绑定和扩展模块许可的设置了,重新运行程序,就不会报错了。OK

注意事项

ArcEngine开发环境首先要配置成功

推荐信息