這實際上是個COM組件未註冊的問題,雖然之前處理過,不過那是在明確知道哪些COM組件須要註冊的狀況下,當你不知道或者不熟悉或者忘記的時候,能夠嘗試用這種方法去解決。windows
問題發生在一次業務系統從舊服務器遷移到新服務器的過程當中,系統中有和其它廠家作的一個登陸驗證交互接口,接口的年份有一些歷史了,裏面有一些須要註冊的COM組件也很正常。因此,當系統部署後,運行中出現這個問題時:
服務器
第一反應就是到系統盤的 system32 目錄下去註冊下廠家提供的組件,例如:regsvr32 dsccrypt.dll ;可是把全部能註冊的DLL 都註冊過以後,竟然仍是報這個錯誤。
唉,頓時好心塞。還好,上面截圖的錯誤提示中,提供了未註冊的DLL組件的clsid值,彷佛有一絲但願了。咱們把這個clsid值複製下來,到系統能運行正常的舊服務器上的註冊表中搜一搜:
spa
看到沒?還真有,InprocServer32中還有這個DLL的物理路徑。什麼鬼!原來是放在個絕不起眼的覺得沒啥用的目錄下。
而後把這個DLL文件複製到新服務器上,若是遷移時已經複製過去了,就找到這個路經下的文件,從新註冊下:regsvr32 WebPro.dll ,問題就解決了。。。操作系統
另外,若是是64位的操做系統要註冊32位的COM組件,需到 C:\windows\sysWOW64\regsvr32.exe 目錄下,由於默認的C:\windows\system32\regsvr32.exe 是64位版的。blog