ArcGISEngine中GP工具奇怪错误问题error(s) have been detected for layer

运行时环境:使用CADToGeodatabase工具执行DWG文件转gdb过程,多次执行(即执行完一个dwg转gdb,再执行另一个dwg转gdb),执行失败

错误描述:首先执行CADToGeodatabase工具需要先生成gdb工作空间,这个很简单没什么问题

IWorkspaceFactory2 pTargetWsf = new FileGDBWorkspaceFactoryClass();
IWorkspaceName pWorkspaceName = pTargetWsf.Create(sPath, sName, null, 0);
IWorkspace gdbWks = pTargetWsf.Open(pWorkspaceName.ConnectionProperties, 0);

然后执行CADToGeodatabase gp工具。

复制代码
public static bool CADToGeodatabase(string cadPath,string gdbPath,ref string msg)
        {
            Geoprocessor gp = new Geoprocessor();
            object sev = null;
            try
            {
                CADToGeodatabase tool = new CADToGeodatabase();
                tool.input_cad_datasets = cadPath;
                tool.out_dataset_name = "CADDATASET";
                tool.out_gdb_path = gdbPath;
                tool.reference_scale = 1000;
                gp.Execute(tool, null);
                return true;
            }
            catch (Exception ex)
            {
                msg = gp.GetMessages(ref sev);
                return false;
            }
        }
复制代码

问题来了,在gp.Execute(tool, null)处,第二次执行会抛出异常,通过查看msg,发现是因为有2072个注记转换失败,并且记录在了log文件中。

ERROR 000278: 2072 error(s) have been detected for layer 20181015142904. Errors are described in file GLC:\Users\用户\AppData\Local\Temp\GL201810151429040.log.log in your temp directory.
ERROR 000016: 2072 annotation(s) rejected
Failed to execute (CADToGeodatabase).

在temp文件夹下确实发现了log日志。

 

后来发现官方实例用到gp工具的地方都是在类实例中使用,没在静态方法中使用。于是测试把gp工具不用静态调用,结果好了,而且每次在temp下都不会有日志存在。

 浅尝辄止:以后用gp工具最好不要放在静态调用

posted @   那是山  阅读(1023)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示