- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > ASP >
- ASP:ActiveX不能創(chuàng )建Scripting.FileSystemObject對象解決辦
今天遇到個(gè)問(wèn)題,一個(gè)ASP網(wǎng)站生成靜態(tài)頁(yè)面時(shí)報錯:
Microsoft VBScript 運行時(shí)錯誤 錯誤 '800a01ad'
ActiveX 部件不能創(chuàng )建對象: 'Scripting.FileSystemObject'
其實(shí)這個(gè)問(wèn)題比較常見(jiàn),報錯原因是服務(wù)器不支持FSO組件。像風(fēng)訊、科汛、動(dòng)易這些ASP的主流CMS系統中經(jīng)常會(huì )遇到這種情況,因為他們都是采取靜態(tài)生成機制的,需要FSO組件支持。在開(kāi)始之前,你有必要先用ASP探針測試下服務(wù)器對FSO組件的支持情況,通常我們使用的是Windows 2003系統的服務(wù)器。
下面說(shuō)下我的具體解決思路,對每一種可能會(huì )產(chǎn)生報錯的原因都作了相應分析,希望對你能有所幫助。
1)“scrrun.dll”文件未注冊。行C:\WINDOWS\system32文件夾下,看下有沒(méi)有scrrun.dll文件。如果沒(méi)有,就去系統安裝目錄i386文件夾中拷貝一個(gè)過(guò)來(lái)。接下來(lái),開(kāi)始菜單->運行以下命令注冊一下FSO組件即可:
regsvr32.exe %windir%/system32/scrrun.dll這樣就開(kāi)啟了服務(wù)器對FSO組件的支持,如果你想關(guān)閉FSO組件,則運行以下命令:
regsvr32.exe /u %windir%/system32/scrrun.dll正常到這里,你的問(wèn)題就可以解決了。
2)如果還不行,檢查一下瀏覽器是否禁用了ActiveX控件。正常是不會(huì )的,除非是服務(wù)器,安全級別才會(huì )嚴格限制。如果存在這種情況,那就把瀏覽器的安全級別調整為中低即可。
3)你的服務(wù)器本身就不支持FSO組件。
4)考慮權限問(wèn)題。依次執行如下操作:
開(kāi)始菜單->運行->regedit->確定,依次找到HKEY_CLASSES_ROOT\Scripting.FileSystemObject,右鍵“權限”,加上Everyone、Internet來(lái)賓帳號(IUSR...)用戶(hù)的權限,重啟IIS即可解決。
5)附:服務(wù)器不支持Scripting.Dictionary組件的解決辦法
通過(guò)以上幾步就能完美解決ActiveX創(chuàng )建對象失敗的問(wèn)題了。如果還出現不支持Scripting.Dictionary組件的問(wèn)題,解決辦法也是類(lèi)似的,參考第一步執行regsvr32.exe %windir%/system32/scrrun.dll命令即可。如果還沒(méi)解決,則考慮權限問(wèn)題,可以參照第四步到注冊表中給這個(gè)對象添加下權限即可。舉一反三,如果再遇到類(lèi)似問(wèn)題的話(huà),知道怎么去解決了吧!
6)附:Server.CreateObject 失敗解決辦法。我們執行程序的時(shí)候可能會(huì )提示類(lèi)似錯誤,如下:
服務(wù)器對象 錯誤 'ASP 0177 : 800401f3'
Server.CreateObject 失敗
/include/test.asp,行38打開(kāi)test.asp,檢查源碼38行附近,看下創(chuàng )建對象的寫(xiě)法有沒(méi)有錯誤,標準寫(xiě)法應該是:
<% Set fso = Server.CreateObject("Scripting.FileSystemObject") %>
這種情況大多是程序員粗心導致的。其實(shí),Scripting.FileSystemObject組件是可以改名的,這樣會(huì )增加服務(wù)器的安全性,我們可以在注冊表中更改,方法如下:
開(kāi)始菜單->運行->regedit->確定,依次找到HKEY_CLASSES_ROOT\Scripting.FileSystemObject,右鍵“重命名”,再執行第一步注冊下scrrun.dll文件即可。注意一點(diǎn),你寫(xiě)程序的時(shí)候要以這個(gè)新名稱(chēng)創(chuàng )建對象,否則會(huì )報錯。7)附:IIS自帶組件
有沒(méi)有發(fā)現一點(diǎn),這些問(wèn)題的原因都出在IIS自身組件身上,下面提供下常見(jiàn)的IIS組件,以供參考:
MSWC.AdRotator
MSWC.BrowserType
MSWC.NextLink
MSWC.Tools
MSWC.Status
MSWC.Counters
SWC.PermissionChecker
WScript.Shell
Microsoft.XMLHTTP
Scripting.FileSystemObject
ADODB.Connection小結一下,關(guān)于A(yíng)ctiveX不能創(chuàng )建Scripting.FileSystemObject對象的類(lèi)似問(wèn)題,大體上解決辦法都是類(lèi)似的,主要是思想要清晰:首先考慮組件注冊問(wèn)題,其次是組件權限問(wèn)題,如果服務(wù)器配置沒(méi)有問(wèn)題的話(huà),那就仔細檢查一下你的程序源碼吧!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站