今天,再次遇到这个问题,再忙得把它记录下来!
AO/AE程序的许可方式
不管是开发环境是基于ArcObject还是基于ArcEngine,不管运行环境是Desktop还是Runtime(早已改名了为ArcEngine了,因为防止与新产品Runtime重名),都需要许可。常见的有两种注册许可的方式,一是直接拖licence控件;二是使用接口注册。
而我个人喜欢使用接口,这样可以检查许可的状态,弹出自己的提示,而不是ESRI 的提示。
0x80040228许可错误
但在10.4使用代码许可高级版权限(esriLicenseProductCodeAdvanced)时,仍然报错"异常来自 HRESULT:0x80040228 ",即使我使用控件许可,也不行。(这是第二次遇到了)
licenseStatus = mAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
也许是10.4的Bug
解决方法,既然是许可错误,一定在注册许可的代码处下手,把它改成ArcServer的许可就好了,我也不理解为什么要使用它,也不必究根问底。
licenseStatus = mAoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcServer);