Engine中调用GP工具报没有许可的错误?

调用gp工具时报没有许可,或报com错误执行不成功
已邀请:

刘峥 - ArcGIS多面手

赞同来自:

【解决办法】:
在arcmap中打开gp工具的执行界面,在右下角有tool help按钮,点击后会打开帮助文档中对应的该工具帮助页面,(或者直接在desktop help桌面的帮助文档中定位到该工具的帮助页面)。在工具的帮助页面里最上方会有该工具要求的许可级别:basic, standard, advanced,这里指的都是桌面的许可。桌面许可与engine许可对应的关系是,basic = engine;standard = engineGeoDB; advanced许可engine中没有与之对应的级别。在调用gp工具时,如果需要的许可级别是basic,那么程序中初始化engine许可即可,如果需要的许可级别是standard,那么初始化engineGeoDB许可即可,如果需要的许可级别是advanced,那么必须将运行时绑定到desktop,然后初始化desktop的advanced许可才行,同样在部署时也是要求客户端上有desktop advanced许可。

当调用的工具属于扩展许可(extension)的范围,如3D Analyst, Spatial Analyst等时,除了需要初始化桌面或Engine许可,还需检出extension许可。以下代码以绑定engine运行时、初始化engineGeoDB许可、并检出3D Analyst扩展许可为例:
ESRI.ArcGIS.RuntimeManager.Bind(ProductCode.Engine);
IAoInitialize m_AoInitialize = new AoInitializeClass();
esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;

licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
licenseStatus = m_AoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst);

要回复问题请先登录注册