最近在写c#小工具的时候,发现调用arcgis gp工具时代码老报错:对COM组件的调用返回了错误
HRESULTE失败。
把详细报错日志打印出来:
一开始怀疑确实是参数的问题,因为不是所有的gp工具都报错。试了各种写法,终归无效。
后来去搜索,可能确实是权限的问题。
我的初始化lisence代码
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
ESRI.ArcGIS.esriSystem.IAoInitialize m_AoInitialize = new ESRI.ArcGIS.esriSystem.AoInitializeClass();
m_AoInitialize.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeEngine);
m_AoInitialize.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
m_AoInitialize.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeAdvanced);
m_AoInitialize.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeArcServer);
于是我一个一个去验证,还真发现esriLicenseProductCodeArcServer加了以后不行,但是你不加它,shp数据操作类又没权限。C# ArcGIS HRESULT:0x80040228-优快云博客
真是头疼。
为了保证gp工具的顺利使用,只能去除esriLicenseProductCodeArcServer权限,至于打开shp的问题,采用了这位老师的第二个方法,先默认打开一个gdb文件。https://www.cnblogs.com/liweis/p/15221206.html