最近做了一個模擬請求的網站簡化原網站的繁瑣數據,提出有用的數據簡單展示並完成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會沒有執行權限.注冊成功結果:
完成以上兩個步驟之后,恢復正常.