ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

三菱PLC Web监控ActiveX控件报错-119的完整排查与解决方案

三菱PLC Web监控ActiveX控件报错-119的完整排查与解决方案 我上个月去客户现场处理设备联网监控的问题客户的技术员一脸无奈地把屏幕转过来让我看三菱PLC的数据监控页面打开后中间一大块空白顶部黄色提示条写着“此网站需要安装以下加载项”左下角弹出的对话框里有一行让人摸不着头脑的英文——Error Number:-119。用户点“安装”浏览器闪一下然后又弹回来还是-119。这种情况在工控圈里太常见了。三菱PLC的很多网络功能模块比如内置Web服务器的以太网模块、部分触摸屏的远程监控页面、以及一些配套的调试软件都依赖ActiveX控件来显示实时数据和下发指令。而这个-119就是控件安装链条中某个环节断了。它不是偶尔出现是在特定环境下必现。这篇内容我整理了一下从“为什么会出现”到“怎么彻底解决”包括我排查时走的弯路一次性说清楚。如果你也正在跟这个报错较劲按顺序操作大概率能解决。1. Error Number:-119到底是什么时候冒出来的先说场景便于你对号入座。这个报错不是三菱PLC本体报警而是你在电脑上访问三菱设备相关Web页面或使用配套工具时Windows系统在安装ActiveX控件过程中返回的一个错误码。典型触发情况有这几种用IE浏览器或Edge的IE模式访问三菱FX系列、Q系列PLC的以太网模块内置网页页面需要下载一个用于读取寄存器数据的ActiveX控件下载过程中弹窗报-119。三菱GOT触摸屏的Web远程监控功能首次连接时需要安装ViewJetCtl等控件安装进度条走到一半就中断提示-119。使用三菱MELSOFT相关的Web化工具比如部分版本的远程维护系统浏览器弹出控件安装请求点击“允许”后立即报错。如果设备上安装过旧版本控件后来卸载又不干净再次访问页面触发新控件安装时也容易抛-119。很多工程师第一反应是“浏览器拦截了”于是拼命改安全级别结果改了半天还是报错。原因在于-119和“拦截”是两码事。拦截通常是IE下方显示“已阻止”或“为保护你的安全”而-119是Windows已经尝试去执行控件注册但注册这一步失败了。理解这个区别很重要因为排查方向完全不同。为什么现在的系统特别容易出这个问题最大原因是工控电脑普遍还在用相对老旧的ActiveX技术而新系统的UAC用户账户控制机制、注册表权限策略、浏览器默认安全等级都变得越来越严。控件安装不只是把文件复制到本地它还需要写注册表、注册COM组件这两件事在权限不足时直接失败Windows就返回一个内部错误码-119。2. 五分钟环境自检下单前别盲目操作我们在现场最容易犯的错就是一上来就百度“-119怎么解决”然后对着一堆不相关的方案反复试。我现在的习惯是先花五分钟做环境确认把变量缩小。这三个要素基本决定了后续动作第一个是浏览器形态。三菱的老控件只认IE内核且必须是32位版本的IE。64位系统默认打开64位IE部分控件在64位进程里注册会失败。如果你用的Edge必须明确开启“Internet Explorer模式”并在设置里选择允许加载ActiveX控件否则装了也白装。第二个是操作系统账户。控件安装会写入C:\Windows\System32和注册表HKEY_CLASSES_ROOT这些区域默认不允许标准用户写入。很多现场电脑是管理员账户没错但UAC如果拉得高依然会卡住。第三个是残留版本。我之前遇到过一台电脑页面里反复报需要安装控件结果我打开“管理加载项”一看控件的状态是“已启用”但版本号和当前页面要求的不一致——浏览器在尝试覆盖旧版本时失败了这个也是-119的高发原因。这三个因素确认完基本可以判断问题属于“环境没过关”还是“控件本身有问题”。环境问题优先处理环境不要一上来就动注册表那是最后手段。提示排查前先把浏览器缓存和临时文件清理一遍可以用%temp%命令行打开临时目录把里面文件全部选中删除正在占用的跳过即可。很多-119其实是下载到一半的损坏Cab包残留导致的。3. 从浏览器设置入手让ActiveX控件能顺利跑起来大多数-119的第一步解决方案其实都是把浏览器的ActiveX策略打开。这个操作虽然基础但细节很多少了哪一项都可能前功尽弃。3.1 将PLC设备的IP加入受信任站点打开IE浏览器或者Edge的IE模式窗口找到“Internet选项”切到“安全”选项卡选中“受信任的站点”点“站点”按钮把PLC设备或软件服务器的IP地址添加进去。这里有个关键点添加之后还要确保“对该区域中的所有站点要求服务器验证”这个复选框没有被勾选因为很多工控设备的Web服务器走的是HTTP而非HTTPS勾选了就加不进去。3.2 把ActiveX相关的拦截项全部放开还是在“安全”选项卡里点击“自定义级别”在“ActiveX控件和插件”分类下把这几项全部改成“启用”或“提示”下载已签名的ActiveX控件启用允许运行已安装的、未签名的ActiveX控件提示工控环境建议启用省得反复弹窗ActiveX控件自动提示启用对标记为可安全执行脚本的ActiveX控件执行脚本启用很多资料只让你做第一步和第二步但我建议把“仅允许经过批准的域在未经提示的情况下使用ActiveX控件”这一项也关掉否则部分设备IP虽然进了受信任站点却还是会被这条限制卡住。客观说把安全级别调低确实会带来风险所以这些设置最好只在给PLC做维护的这台专用电脑上操作不要覆盖到办公网电脑。3.3 关键一步在“管理加载项”里确认控件是否真的装上了打开Internet选项的“程序”选项卡点“管理加载项”在“当前已加载的加载项”里找到三菱相关的控件名称常见的有GX Web控件、MELSOFT Web控件等。如果你能看到先记录它的状态和版本号。如果控件存在但状态是“已禁用”右键启用即可。如果存在但版本和页面要求不一致就需要卸载后重装。这里我提供一个判断技巧打开“详细信息”看加载项的“文件夹”路径。如果路径在C:\Program Files或者C:\Windows\SysWOW64说明控件已经通过正规安装流程写入系统目录。如果路径还在C:\Users\xxx\AppData\Local\Temp说明控件只是解压了还没完成注册——这种状态下访问页面要么一直提示安装要么就是报-119因为COM组件注册没生效。3.2节和3.3节的具体设置我整理成一个对比表方便你自检检查项正确状态错误表现影响浏览器位数32位IE或Edge IE模式64位浏览器控件无法加载报错-119受信任站点已添加PLC的IP未添加浏览器直接拦截下载ActiveX自动提示启用禁用页面无安装提示管理加载项控件存在且已启用控件不存在或已禁用页面功能区域空白加载项路径System32或SysWOW64Temp目录注册失败报-1194. 解决-119的核心操作完整顺序和每一步的原因如果你已经按上面的方法把浏览器环境调整好但点击安装仍然报-119那么问题很可能出在控件自身的安装流程上。下面是我在多个现场验证过的操作顺序务必按序号来不要跳步。4.1 用管理员权限重新触发安装这个操作看起来像废话但恰恰是很多人忽略的。双击你的浏览器图标不要直接打开而是右键选择“以管理员身份运行”。这样浏览器进程会带上高权限令牌控件安装时就有权限往C:\Windows\System32写文件和改注册表。访问页面后再手动点击“安装”按钮观察报错是否变化。如果不再报-119而是变成“控件安装成功”但还是不能用可能是浏览器进程没有刷新到最新状态重启浏览器再看。4.2 进入临时目录手工清理控件解压残留如果管理员权限下仍然报-119不要再重复点击安装了。控件下载到本地后Windows会先把Cab包解压到一个临时目录再执行注册。如果这个目录里有同名文件且被锁定或损坏后续所有安装尝试都会失败。你需要打开资源管理器地址栏输入%temp%回车。按修改时间排序找到最近半小时内生成的文件重点看有没有*.cab、*.ocx、*.dll文件。如果发现三菱相关文件名的残留全部删除。然后再次回到页面触发安装。这一步解决的是“假性已安装”问题。很多同事跑到现场发现C盘里其实已经有一份控件库了但状态是坏的系统每次都在试图覆盖它却因为文件占用或权限不足而失败。清理掉之后安装过程会像第一次一样重新走一遍反而更顺利。4.3 手工下载控件包并手动注册如果页面自动安装一直失败果断放弃自动流程改成手动安装。具体做法在三菱设备的Web页面或配套光盘里找到控件安装包文件通常是setup.exe或*.cab文件。如果页面显示“下载控件”链接另存为到本地。如果是Cab文件用管理员身份打开命令行进入文件所在目录先执行expand -F:* 文件名.cab 目标目录把文件解压出来。查看解压结果里是否有.ocx或.dll文件。找到后在管理员命令行里执行regsvr32 完整文件名比如regsvr32 C:\PLC\GXWeb.ocx。注册后命令行提示“DllRegisterServer已成功”再回到浏览器刷新页面。这里要特别提醒如果你用的是64位系统regsvr32默认注册到64位环境但很多老控件的OCX文件是32位的必须强制用32位注册器。路径是C:\Windows\SysWOW64\regsvr32.exe而不是System32下的那个。如果注册时提示“模块加载失败”也基本可以确定是位数不匹配。举例来说我处理过一个FX3U以太网模块的监控页面控件文件解压后是32位的OCX用System32的regsvr32注册报-119换成SysWOW64下的regsvr32一次就成功了。4.4 检查并修复Internet Explorer的隔离注册键如果手动注册都报错那就不是控件文件坏了而是IE的ActiveX机制本身被系统策略限制了。重点检查隔离注册键中关于ActiveX的部分也就是路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility下的设置。这个注册表位置记录了哪些CLSID对应的控件被强制禁用或锁定。在运行框输入regedit跳到上述路径。展开每一项子键查看右侧是否有“Compatibility Flags”值。若值为0x400或0x10000000就说明控件被默认阻止运行了。把对应的项删除或者修改值再重启浏览器测试。这个位置属于“高级手段”但确实是我在严重环境下遇到过的案例——一些安全软件或系统优化器会在安装后向这个键写入禁用标记导致控件无论如何都跑不起来。4.5 禁用增强安全配置针对服务器系统如果现场电脑是Windows Server比如WinServer 2012/2019经常用来做SCADA站的服务器系统自带“IE增强的安全配置”默认对所有站点强制高安全等级。这个配置下即使你往受信任站点添加了IP也可能被二次拦截。打开服务器管理器在“本地服务器”页面找到“IE增强的安全配置”将“管理员”和“用户”两项都设为“关闭”。修改完不需要重启直接刷新浏览器页面再触发安装。5. 顽固失败的最后排查链路四步走判断系统层级问题偶尔也会遇到所有常规手段都失效的情况。这时候再重复操作没有意义我建议按下面的顺序逐层排查大概率能定位到问题。5.1 打开事件查看器定位组件的真实失败模块运行eventvwr.msc打开“事件查看器”依次展开“Windows日志”下的“应用程序”。在右侧点击“筛选当前日志”来源选择Application Error和Windows Error Reporting时间范围选择最近两次抓取报错的时间点。查看详细信息里“错误模块”这一项。如果是kernel32.dll或ntdll.dll多是权限或内存映射问题。如果是ieframe.dll多是IE集成问题。如果是msi.dll之类的微软安装引擎组件说明控件走的是MSI安装包流程且MSI服务未正常运行。通过错误模块可以快速缩小排查范围避免在无关方向上浪费几个小时。实操时特别是要检查“Windows InstallerMSI”服务把它设为“手动”后重启。很多控件安装包依赖这个服务服务被禁用后所有安装界面会表现成“准备安装…”然后瞬间消失报-119。5.2 使用Process Monitor抓取安装时的底层操作这是很有效的绝技适合多个现场研究。下载微软Sysinternals套件里的Process Monitor打开前先设置过滤器进程名选iexplore.exe或你现在用的浏览器exe然后点击页面上的控件安装按钮等待报错出现后停止捕获过滤结果包含ACCESS DENIED或NAME NOT FOUND的记录基本就是罪魁祸首。例如之前在一台装了国产安全软件的机器上报错的实际原因是对HKLM\SOFTWARE\Classes\CLSID下的某个键写入ACL被拒绝。用Process Monitor定位后直接在注册表编辑器修改该键的权限给当前用户分配完全控制问题消失。5.3 在干净的用户环境里复测一次这一步主要用于区分“系统环境问题”还是“用户配置文件问题”。在命令提示符里执行control userpasswords2新建一个本地管理员账户然后切换到新账户按常规流程访问页面安装控件。如果新账户下安装成功问题基本确定出在旧用户配置文件的IE缓存、Cookie或者加载项配置损坏。这时把新账户作为本次维护专用账户或者删除旧配置文件重新初始化Windows就恢复正常了。有几次在新账户里还发现之前一直-119是因为旧账户下的ActiveX安全等级被我改坏的次数太多回不去了新账户反而干净。5.4 检查系统时间与PLC设备时间是否同步这个原因听起来离谱但真实发生过。ActiveX控件通常带数字签名签名校验时会比对系统时间和证书有效期。PLC设备端的时间如果差了几年某些同步机制会把异常时间带回客户端甚至有的控件安装包在解压时校验当前时间时间不合法就拒绝安装。对照方式很简单把电脑时间改为自动同步或者手动改成和PLC设备一致的年月日再刷新页面。如果时间差距过大比如PLC显示2020年可以先临时手动找一个靠近PLC时间的时间点安装控件成功后再把电脑时间同步回正常值。6. 类同场景的扩展比-119更值得注意的几个控件坑在解决-119的过程中你会发现三菱PLC相关的控件问题其实是同一个家族。我把排查时常见的相关错误和应对思路整理出来做好预防能省不少后期功夫。报错信息常见原因处理思路Error Number-119ActiveX控件注册失败检查权限、位数、残留控件未安装请点击此处安装控件下载后未注册成功手动注册OCX/DLL此页面需要安装GX Works相关组件版本不匹配安装对应版本软件后再测试浏览器无法创建对象CreateObjectIE安全级别限制或控件未加载调整ActiveX策略添加受信任站点页面显示为空白/报请刷新或重新进入加载项被禁用或进程残留结束iexplore残留进程重开浏览器如果你在现场解决完某一台电脑的-119之后发现把浏览器关掉重开又会复现不要怀疑自己没修好先看是否开启了浏览器“增强保护模式”或系统组策略里“仅允许经过批准的域在未经提示的情况下使用ActiveX控件”被远程策略强制启用。这种情况下即使你改了本地Internet选项刷新后注册表值会被组策略重新覆盖。7. 这类问题最容易被忽略的“元凶”旧版控件残留在所有-119案例里我碰到最多、也最容易被忽略的就是电脑上已经存在一个旧版的三菱控件它与页面要求的新版本控件产生了CLSID冲突。CLSID就是COM组件在注册表里的身份证号旧版本和新版本如果用的是同一个CLSID但DLL版本不一致Windows认为控件已存在会跳过安装。但页面需要调用的接口函数在旧的DLL里可能没有于是浏览器报错用户误以为是安装不了实际上是要先删旧的。处理方法是在“管理加载项”里确认旧控件的名字和CLSID。用注册表编辑器搜索该CLSID找到对应项后右键删除操作前建议直接导出备份注册表项。在C:\Windows\SysWOW64或C:\Windows\System32里删除对应的OCX/DLL文件。回到页面重新安装新控件。手动删注册表属于高危操作动手前一定要备份好相关注册表项。我在现场一般先导出.reg文件到U盘里万一操作失误可以双击还原。8. 我现在的调试顺序和实操习惯随着遇到-119的次数变多我慢慢积累了一套自己的处理顺序。如果你不想每次都在现场从头摸索可以直接把这个当作检查表照做第一步确认当前用户是管理员并关闭UAC中的“始终通知”选项至少在这个维护周期内。第二步用32位IE或者Edge的IE模式打开页面先把IP加进受信任站点。第三步用管理员权限刷新页面点击安装观察是否还有-119。第四步如果报错不变清理%temp%和浏览器缓存再次使用管理员权限触发。第五步若仍未成功进入“管理加载项”看控件是否已经“被安装”但在Temp里未注册若有此情况则删除残留。再进行手动解压和注册。第六步手动注册时优先用SysWOW64目录里的regsvr32注册成功后再返回到页面。第七步仍然失败才检查事件查看器和使用Process Monitor抓取底层权限问题。整套流程下来绝大多数情况下能在一个小时解决。真正最后需要用Process Monitor排查的反而是项目中那些装过杂七杂八软件的电脑或者系统被专门优化过的机器。9. 现场排错时的几个额外小技巧除了常规操作我在多次调试中积累了一些能让成功率更高的细节。这些小技巧可能看似无关紧要但它们往往就是压垮-119的关键触发点浏览器如果用的Edge的IE模式每次进入IE模式后要主动点一下地址栏左侧的“文档模式”图标确保在“兼容性视图”或“IE10/IE11”之间自动切换而非固定在较新模式。三菱官方文档里经常标注“推荐使用IE11兼容性视图”但实际操作中我发现不同的三菱模块对文档模式的兼容范围其实不同。FX5U系列的内置Web服务在Edge IE模式的老版本兼容下运行正常但Q系列的老模块却只能用IE11兼容性视图。因此如果界面样式错乱或者控件找不到手动在F12的仿真模式里切换“文档模式”是常见操作。另外如果你操作的是64位Windows 11系统实际上IE11已经被移除仅保留Edge的IE模式。那么控件安装可能需要在IE模式里打开“工具-兼容性视图设置”把设备IP加入兼容性站点。这个设置藏在Microsoft兼容性列表的界面里终端用户很容易找不到。你可以在开始菜单搜索“Internet选项”在“高级”选项卡里面勾选“允许运行或安装软件即使签名无效”这会在某些情况下绕过签名校验问题。我还遇到过一个很隐蔽的问题电脑的系统区域语言设置若为英文部分日系ActiveX控件安装时安装程序预期读到日语或中文的代码页解析失败也会报-119。修改“控制面板-区域和语言-管理-更改系统区域设置”把系统区域语言设置为“中文简体中国”或“日语”重启后再试。这个听起来玄幻但实际处理时确实灵过。许多设备里自带的Web服务器还可能会有SSL证书过期的现象。某些控件在下载时要求HTTPS且证书有效证书过期时安装逻辑直接返回-119。检查方法是浏览器访问PLC的地址如果地址栏有证书警告点击“继续访问”手动导入证书到“受信任的根证书颁发机构”后再触发安装。再补充一个关于“同一台电脑多块网卡”的情况。工控机有时候配置了外网和现场设备网卡两个网段当访问PLC的Web页面时操作系统有可能通过外网代理去解析或者网卡负载不均衡造成下载控件被路由中断。排查方式是把PLC对应的网段加入到“高级TCP/IP设置”的路由表或者临时关掉Proxy局域网代理再试一次安装。国内工业现场很多路由器开启了透明代理或Web过滤ActiveX下载请求如果携带有Cab包特征可能会被安全策略拦截这类问题和服务无关纯属网络中间层需要在路由器上把该设备IP加入白名单。关于杀毒软件还是再说一次吧。你不需要永久卸载但安装控件的这十分钟里把实时防护暂时停掉或者把PLC的Web地址加入信任区。安装完成后立即恢复防护状态。最后有一个小提示所有控件安装完毕以后关闭浏览器重新打开一次再访问页面。如果你直接在当前页面刷新控件的IE进程其实还在运行DLL可能处于占用状态某些初始化工作不会执行这时候页面会提示“请刷新页面或重新进入”但你真的刷新了还是没反应。把浏览器完全退出再重开是最简单也是最有效的“激活”方式。等你把这一整套流程走完基本上不会再被-119困扰。以后再遇到类似的中英文夹杂控件报错你的脑子会自动跳出排查顺序而不是乱试一通。这个过程就是工控人的日常——看起来是个小弹窗背后牵扯的却是浏览器机制、系统权限、组件注册、网络环境一整条链路的协同。搞明白了也就不怕了。按这套思路下来你还会发现不只是三菱PLC其他品牌设备比如触摸屏、变频器、伺服驱动器的Web监控功能如果也报类似错误排查方向是共通的。这套方法论学会了就成了你工具箱里的常备技能。
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表