ASP:ActiveX不能建立Scripting.FileSystemObject對象解決辦法

來源:互聯網
上載者:User

今天遇到個問題,一個ASP網站產生靜態頁面時報錯:

Microsoft VBScript 執行階段錯誤 錯誤 '800a01ad'
ActiveX 組件不能建立對象: 'Scripting.FileSystemObject'

其實這個問題比較常見,報錯原因是伺服器不支援FSO組件。像風訊、科汛、動易這些ASP的主流CMS系統中經常會遇到這種情況,因為他們都是採取靜態產生機制的,需要FSO組件支援。在開始之前,你有必要先用ASP探針測試下伺服器對FSO組件的支援情況,通常我們使用的是Windows 2003系統的伺服器。
下面說下我的具體解決思路,對每一種可能會產生報錯的原因都作了相應分析,希望對你能有所協助。

1)“scrrun.dll”檔案未註冊。行C:\WINDOWS\system32檔案夾下,看下有沒有scrrun.dll檔案。如果沒有,就去系統安裝目錄i386檔案夾中拷貝一個過來。接下來,開始菜單->運行以下命令註冊一下FSO組件即可:
regsvr32.exe %windir%/system32/scrrun.dll這樣就開啟了伺服器對FSO組件的支援,如果你想關閉FSO組件,則運行以下命令:

regsvr32.exe /u %windir%/system32/scrrun.dll正常到這裡,你的問題就可以解決了。

2)如果還不行,檢查一下瀏覽器是否禁用了ActiveX控制項。正常是不會的,除非是伺服器,安全層級才會嚴格限制。如果存在這種情況,那就把瀏覽器的安全層級調整為中低即可。
3)你的伺服器本身就不支援FSO組件。
4)考慮許可權問題。依次執行如下操作:
開始菜單->運行->regedit->確定,依次找到HKEY_CLASSES_ROOT\Scripting.FileSystemObject,右鍵“許可權”,加上Everyone、Internet來賓帳號(IUSR...)使用者的許可權,重啟IIS即可解決。
5)附:伺服器不支援Scripting.Dictionary組件的解決辦法
通過以上幾步就能完美解決ActiveX建立對象失敗的問題了。如果還出現不支援Scripting.Dictionary組件的問題,解決辦法也是類似的,參考第一步執行regsvr32.exe %windir%/system32/scrrun.dll命令即可。如果還沒解決,則考慮許可權問題,可以參照第四步到註冊表中給這個對象添加下許可權即可。舉一反三,如果再遇到類似問題的話,知道怎麼去解決了吧!
6)附:Server.CreateObject 失敗解決辦法。我們執行程式的時候可能會提示類似錯誤,如下:
伺服器對象 錯誤 'ASP 0177 : 800401f3'
Server.CreateObject 失敗
/include/test.asp,行38開啟test.asp,檢查源碼38行附近,看下建立對象的寫法有沒有錯誤,標準寫法應該是:

<% Set fso = Server.CreateObject("Scripting.FileSystemObject") %>
這種情況大多是程式員粗心導致的。其實,Scripting.FileSystemObject組件是可以改名的,這樣會增加伺服器的安全性,我們可以在註冊表中更改,方法如下:
開始菜單->運行->regedit->確定,依次找到HKEY_CLASSES_ROOT\Scripting.FileSystemObject,右鍵“重新命名”,再執行第一步註冊下scrrun.dll檔案即可。注意一點,你寫程式的時候要以這個新名稱建立對象,否則會報錯。7)附:IISOOB 元件
有沒有發現一點,這些問題的原因都出在IIS自身組件身上,下面提供下常見的IIS組件,以供參考:
MSWC.AdRotator
MSWC.BrowserType
MSWC.NextLink
MSWC.Tools
MSWC.Status
MSWC.Counters
SWC.PermissionChecker
WScript.Shell
Microsoft.XMLHTTP
Scripting.FileSystemObject
ADODB.Connection小結一下,關於ActiveX不能建立Scripting.FileSystemObject對象的類似問題,大體上解決辦法都是類似的,主要是思想要清晰:首先考慮組件註冊問題,其次是組件許可權問題,如果伺服器配置沒有問題的話,那就仔細檢查一下你的程式源碼吧!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.