解決127.0.0.1無法訪問和0x800A0046 沒有權限: 'GetObject'的方案
先感謝 D8-笨阿豬 D8-忘優草 D8-狼芽 的幫忙調試
============================================
一般,當我們在本機調試ASP動態網頁時,可輸入
http://localhost
http://本地計算機名
http://127.0.0.1
在當輸入
http://127.0.0.1 時,一般機器都需要輸入用戶名和密碼進入,這裡將分兩種情況:
一種是剛新建IIS的,為了測試IIS,所以此時訪問即是“系統盤\Inetpub\wwwroot”下的iisstart.asp,隨之iisstart.asp又跳轉到localstart.asp,並同時打開iishelp的。“localhost”、“計算機名”都沒問題,但輸入127.0.0.1時,彈出對話框,需要輸入帳戶和密碼。
第二種情況是,建立了虛擬目錄,通過“localhost+虛擬目錄”和“計算機名+虛擬目錄”都能訪問,同樣是“127.0.0.1+虛擬目錄”不能訪問。
雖然同是相同的症狀,但卻是不同的情況。
首先,先拋出第一條總的要訣:
要使得輸入http://127.0.0.1 能訪問,無論直接訪問,還是虛擬目錄,必須確保“匿名訪問”的打開。那麼現在就能快速解決第二種情況的問題,如下圖的操作:打開IIS,在“默認站點”上右鍵,彈出菜單選擇“屬性”,打開面板,選擇“目錄安全”進行“編輯”,此時,如果“匿名訪問”前沒有勾選,選擇勾選,“確定”就能解決這個問題。
此時訪問 “127.0.0.1+虛擬目錄的” 第二種已經解決
不過這個問題,遇到的人比較少,並且就這樣簡簡單單的勾選了還不算回事,再往下看。
此時單獨測試 127.0.0.1 雖然也沒有了要求密碼輸入對話框,但新的問題出現了,同樣,此刻輸入
http://localhost 同樣的是如此的錯誤,這也就是很多人反饋的:
錯誤類型:
Microsoft VBScript 運行時錯誤 (0x800A0046)
沒有權限: 'GetObject'
/localstart.asp, 第 40 行
那麼現在就先停在這,分析下原因
開始沒有“匿名訪問”,需要提供帳戶密碼;現在有了“匿名訪問”,則出現了錯誤。注意!這是針對直接 127.0.0.1 訪問而言的。
那麼“匿名訪問”就是提供的帳戶和密碼,才使得“127.0.0.1+虛擬目錄”的問題得到解決,當然也解決了直接“127.0.0.1”訪問的部分問題(不需要帳號密碼了)
說明這個“匿名帳戶”是有用的。
但現在要解決這個新出來的問題:
Microsoft VBScript 運行時錯誤 (0x800A0046) 沒有權限: 'GetObject'通常被提供的方法是:單獨對“iisstart.asp”和“localstart.asp”取消“匿名訪問”
等等,再好好看,我沒有打錯字
要解決“(0x800A0046) 沒有權限: 'GetObject'”的方案是“
單獨”對這兩個文件進行
取消“匿名訪問”
具體操作流程:在IIS中選擇“localstart.asp”文件,右鍵,彈出菜單選擇“屬性”,打開面板,選擇“文件安全性”進行“編輯”,取消“匿名訪問”訪問前的選擇。
同樣的操作流程對“iisstart.asp”再進行一般。
那麼現在“
http://localhost ”已經能訪問,解決了
Microsoft VBScript 運行時錯誤 (0x800A0046) 沒有權限: 'GetObject'的問題。
到此,再來分析下:
1,要使得127.0.0.1能訪問必須要設置“匿名訪問”
2,要使得“iisstart.asp”和“localstart.asp”能正常訪問,必要要單獨設置取消“匿名訪問”
經過了如上設置後,localhost,localhost+虛擬目錄,127.0.0.1+虛擬目錄都能正常訪問,就剩下單獨的 127.0.0.1 訪問的情況,以上的分析似乎又是相矛盾的
那麼,再來看看這“匿名訪問”到底是個什麼?
用戶名是“BLUECOM\IUSR_BLUECOM”,密碼是IIS控制的。其中“BLUECOM”是我這台機器的“計算機名”,各人是不同的。那麼“IUSR_BLUECOM”就是“IUSR_計算機名”了。
這個“IUSR_計算機名”又是什麼?它是一個“Internet來賓帳戶”,是“匿名訪問IIS的內置的帳戶”,他是屬於“Guests”組的
這就又回到當使用該帳戶時,localhost會顯示“(0x800A0046) 沒有權限”,這似乎有點關系。
那麼,我最終的比較完美的方案則是,全部采用“匿名訪問”,確保所有的頁面都能訪問而沒有密碼輸入框,同時,將“匿名訪問”的帳戶替換掉,不使用“IUSR_計算機名”帳戶,而是使用我的XP管理員登錄帳號。
於是重頭繼續調整,打開IIS,在“默認站點”上右鍵,彈出菜單選擇“屬性”,打開面板,選擇“目錄安全”進行:
1,“編輯”
2,“浏覽”用戶
3,“高級”
4,“查詢”用戶
5,“選擇”本機XP登錄用戶名
6,“確定”,一直“確定”到最後
另外,在更新的時候有一點很重要,就是要選擇“繼承覆蓋”兩個文件“iisstart.asp”和“localstart.asp”,否則就需要單獨把這兩個文件的“匿名訪問”重新加上,加上的帳號為剛才設置的XP登錄帳號。