程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 127.0.0.1無法訪問,沒有權限: GetObject

127.0.0.1無法訪問,沒有權限: GetObject

編輯:關於ASP編程
解決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登錄帳號。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved