• 解决C#调用执行js报检索 COM 类工厂中 CLSID 为 {0E59F1D51FBE11D08FF200A0D10038BC} 组件失败


    最近做了一个模拟请求的网站简化原网站的繁琐数据,提出有用的数据简单展示并完成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:

    regedit

    第二步:注册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会没有执行权限.注册成功结果:

    cmd

    完成以上两个步骤之后,恢复正常.

     

  • 相关阅读:
    //删除字符串值的某个值
    disabled和readonly 的用法区别
    Js判断为空或不是对象或是否相等
    1.类型分析:
    多行内容放到一行中(内容的合并)
    sql split
    sql修改列名
    对oracle数字类型的研究
    kettle--组件(3)--行转列
    kettle--组件(2)--计算器
  • 原文地址:https://www.cnblogs.com/lzyGod/p/5556646.html
Copyright © 2020-2023  润新知