C# + ArcEngine调用GP工具总是出现问题:对COM组件的调用返回了错误HRESULT E_FAIL

这样的错误怎么办

首先学会输出错误:

在执行工具的时候,本来只需一句

geoprocessor.Execute(erase, null); //这里以执行擦除为例

但为了看到具体的错误,写成下面这样。

            try
            {
                geoprocessor.Execute(erase, null);
            }
            catch (System.Runtime.InteropServices.COMException e)
            {
                string message = "";
                for (int i = 0; i < geoprocessor.MessageCount; i++)
                {
                    message += geoprocessor.GetMessage(i) + "\r\n";
                }
                MessageBox.Show(message + e.ToString());
            }

这样就会输出这样的界面,显示了具体是因为什么出现了“对COM组件的调用返回了错误HRESULT E_FAIL”的错误。

可以看到,我这里是因为工具没有权限

修改工具权限

在网上查了半天,说是需要将权限修改成advanced,也就是更高级一点。有两种方法,一是按照图1所示,将那三行代码写在初始化之前,二是如图2右键axLicenseControl勾选Advanced选项。

图1
图2

呵呵,谁知道我前前后后试了多少回都没有成功。放弃后耍了几天,一回来,随便操作了一番,竟然成功了!!

正确做法是:勾选ArcEngine Engine,把右边全部勾了!

可能默认就是这样??但是之前就是死都不成功。不管了,反正它已经没有问题了,啦啦啦啦~~

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一:LoadRunner常见问题整理1.LR 脚本为空的解决方法:1.去掉ie设置中的第三方支持取消掉2.在系统属...
    0100阅读 9,969评论 0 11
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 10,147评论 0 12
  • 2系列200 OK请求已成功,请求所希望的响应头或数据体将随此响应返回。201 Created请求已经被实现,而且...
    Y像梦一样自由阅读 8,976评论 1 5
  • cat cdchmod chowncp cut名称:cat使用权限:所有使用者使用方式:cat [-AbeEnst...
    Creator93阅读 2,953评论 0 0
  • 皮鞋有点老气 鞋头微微凸起 显得脚趾很肥大 鞋面泛黄掉皮像打了马赛克 鞋后跟还有些破损 鞋的主人大概是个不爱干净的...
    猫阿陈故阅读 1,045评论 0 1

友情链接更多精彩内容