许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  acgmd.dll ARX异常+MMC管理单元创建失败修复实录

acgmd.dll ARX异常+MMC管理单元创建失败修复实录

阅读数 4
点赞 0
article_banner


最近遇到一个问题,打开autocad2023提示“acgmd.dll ARX命令中发生异常”。


周一早上开机,CAD刚点开就弹了个框,“acgmd.dll ARX命令中发生异常”,下面一行小字说什么命令中发生无法处理的异常,点确定之后CAD直接关了。再点一次还是一样。当时以为是上次装的某个插件把acmgd.dll覆盖了,因为之前看过有人说过ObjectARX的SDK里的dll和安装目录的dll大小不一样,覆盖上去就废了。所以先没急着动CAD,去事件查看器看看有没有更多信息,结果事件查看器也打不开,弹出来的是“MMC无法创建管理单元。此管理单元可能没有正确安装。名称:事件查看器,CLSID:FX:{b05566ad-fe9c-4363-be05-7a4cbb7cb510}”。两个不相干的东西同时坏,这事不对。


先试了网上提到最多的那条,Windows功能里把.Net Framework 3.5取消勾选再重新勾上然后重启,重启完发现勾选状态根本没变,cbs.log里一堆错误,这条路走不通。又想过是不是acmgd.dll文件丢了或者被替换了,打开AutoCAD安装目录看了一下,文件在,时间戳也没变。然后想用procmon看看打开事件查看器的时候到底卡在哪个文件上,下了个Process Monitor,开过滤器只显示mmc.exe的Load Image事件,打开事件查看器,日志里全是Access Denied,但看不出哪个是关键,感觉像在瞎猜。


那天下午空调坏了,工位温度三十多度,旁边同事在吃饼干,嘎吱嘎吱的。我盯着procmon的日志一条一条往下翻,越翻越烦,干脆找了个正常系统的机器跑同样的操作,把两边的Load Image日志导出来做diff。正常系统那边sxs.dll加载完之后紧接着加载了一堆config相关的文件,故障机这边sxs.dll之后直接跳过了config读取,或者说读了一下就返回了。继续往下对比,定位到mmc.exe在读取一个machine.config文件的时候直接END OF FILE。右键Jump To File Location,路径是C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config,打开一看,文件是空的,0字节。这个文件空了,MMC初始化的时候解析不了配置就报创建管理单元失败,然后AutoCAD的acmgd.dll在启动时依赖CLR的一些初始化逻辑,CLR本身又依赖machine.config,一条链断在上面了。


修复操作很简单,同目录下有个machine.config.default,复制一份改名成machine.config就行,原来的空文件改个名比如machine.config.bak留着以防万一。改完不用重启,直接打开事件查看器,秒开,再打开CAD,也不弹那个acgmd.dll的框了。.NET Framework 2.0的目录下也有一个machine.config,路径是C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\,如果Framework64的修完还有问题可以顺手检查一下这个。


不一定每次都是machine.config空了导致的,C:\Windows\assembly这个目录如果缺失或者不完整也会造成MMC管理单元创建失败,典型受影响的就是eventvwr.msc、taskschd.msc、WF.msc这几个。还有环境变量PATH里要是丢了%SystemRoot%\system32\WBEM这一段也可能出问题,组策略编辑器打不开的时候可以先看这个。不过这次遇到的情况机器上PATH是正常的,assembly目录也在,所以直接跳到machine.config这步就修好了。


另外如果只是想单独解决acmgd.dll的ARX异常,跟MMC拆开看的话,有人试过重新安装Microsoft Visual C++运行库,或者去AutoCAD安装目录下把acmgd.dll删了从同版本机器的安装目录拷一份过来覆盖。但这次两个问题明显是同一个根因,单修CAD不一定有用,因为底层CLR的配置就没加载成功。如果CAD本身没问题只是事件查看器打不开,那反过来说明CAD那边的acmgd.dll可能被别的东西污染了。


machine.config.default这个文件不要删,就让它留在Config目录里,以后如果再出现空文件的情况直接复制改名就行。备份的machine.config.bak也可以留着,万一default文件本身也有问题还能对照一下。如果Framework64下的修好了但Framework下的还空着,把那个也换掉,两个路径都检查一遍不费事。C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\


本想打开事件查看器看有无相关的错误日志,结果事件查看器也打不开,提示:

MMC无法创建管理单元。此管理单元可能没有正确安装。 名称:事件查看器 CLSID:FX:{b05566ad-fe9c-4363-be05-7a4cbb7cb510}

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空