[COM]當 COM元件 遇到 Windows 2012

  • 3421
  • 0
  • VB6
  • 2016-03-11

要把 ASP 的系統,升級到 Windows 2012 嗎?

同事 婷姐 詢問,將一個 ASP 系統移轉到 Windows 2012 上,

結果一執行網頁,就發生「ASP 0177 : 8007007e」的錯誤,如下,

伺服器物件 錯誤 'ASP 0177 : 8007007e'
Server.CreateObject 失敗

通常這種 CreateObject 發生錯誤,我會先建立vbs程式來測試看看。

於是將 Server.CreateObject 改成 CreateObject 來試看看,

結果就發生「80004027」的錯誤,如下,

錯誤:    包含該元件的元件或應用程式已經停用。
程式碼:    80004027

image

 

查看網路需要增加「COM+ 網路存取」的服務,如下圖,

image

 

再測試vbs程式,又發生了「沒有使用權限: 'CreateObject'」的錯誤。

image

image

 

印象中,把 DLL 拉進 元件服務之中,應該就會自行註冊到系統之中了呀!

奇怪,但是那個錯誤,又似乎要我們再註冊一次,

於是重新以「系統管理身份」開啟命令視窗,然後用 regsvr32 來註冊那些DLL。

 

再試vbs就可以順利建立物件。再試 ASP 程式,系統就可以正常運作。

後來程式運作到某支功能,卻又發生「800a01a8 Object required」的錯誤,如下,

image

 

記得之前有些 VB 寫的元件,裡面有加入 IIS 的 Request, Response 物件,應該是沒有這些物件吧。

所以就在元件服務的DLL類別中,點選到「進階」的Tab,然後勾選「允許IIS內建內容」,如下,

image

 

再測試,問題解掉了,但是畫面卻怪怪的。

像這種ASP程式,時代久遠了,網頁應該要以相容性來瀏覽,所以再設定 IE 以相容性來檢視就OK了。

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^