解决C#调用执行js报检索 COM 类工厂中 CLSID 为 {0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} 组件失败
最近做了一个模拟请求的网站简化原网站的繁琐数据,提出有用的数据简单展示并完成post.由于原网站数据有js加密,所以我抓出原网站的js解密方法,由C#调用js得到解密后的数据。
整个抓包的框架是用的苏飞的HttpHelper万能框架,执行js方法则是用框架已实现的HttpHelper.JavaScriptEval方法,码好代码,实现功能,本地调试一切正常.于是我把网站部署到IIS上,这时问题来了.
部署上IIS之后访问开始报异常,具体错误:
Exception type: COMException
Exception message: 检索 COM 类工厂中 CLSID 为 {0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
找不到这个组件,那这个组件去哪了,我得把他找出来.
第一步:注册表寻找这个值,打开注册表,在注册表中查找{0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} 这个值找到了这个,MSScriptControl.ScriptControl,对应的组件是msscript.ocx:
第二步:注册msscript.ocx这个组件,32位的系统在C:\Windows\System32\下面,我是64位的系统在C:\Windows\SysWOW64\下面.
以管理员身份运行Cmd 执行命令:Regsvr32 C:\Windows\SysWOW64\msscript.ocx(32为系统路径用C:\Windows\System32\msscript.ocx)
注意一定要用管理员身份运行Cmd,否则DLLRegitsterServier会没有执行权限.注册成功结果:
完成以上两个步骤之后,恢复正常.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步