問題描述:
我使用的是修改hosts,模擬真實網址來進行除錯的。具體是這樣的:我修改hosts檔案,把某個域名,如www.163.com對映為127.0.0.1,然後在IIS資訊管理器中,建立一個網站,該網站的主機頭就是指向www.163.com
這樣,在瀏覽器中輸入www.163.com時,就不會再去訪問網易的主頁了,而是訪問我本地的網站了。
然後我用vs2008中文版,開啟我的網站專案,把除錯啟動路徑設定為www.163.com,於是我就可以去用www.163.com除錯我的程式了。
如果我不使用hosts的模擬真實網址的方法,直接按F5進行除錯,那麼vs2008就會自動生成類似於http://localhost:2323/這種網址來進行除錯,這種網址不是我所需要的。
下面描述問題的發生情況:
使用www.163.com除錯我的網站程式,在vs2008未裝sp1前,按F5可以除錯。我以前用vs2005的時候,如果vs2005未裝vs2005的sp1,也能除錯,但是不論是vs2005還是vs2008,只要一裝上相應的sp1補丁,就不能再使用這種模擬真實網址的方式來進行除錯了,會報如下錯誤:“無法在Web伺服器上啟動除錯,與Web伺服器通訊時出現身份驗證錯誤”。
注意事項:
1)請一定要注意,不論vs2005,還是vs2008未裝sp1之是可以除錯的!
2)我的除錯網址是模擬真實網址,如使用www.163.com去除錯,而不是用系統生成的帶有埠號的網址去除錯,這點是最大的區別,現在網路上的解決方法都不適合於我這種問題的解決方法。
另外,vs2005,或vs2008,在裝上sp1後,一樣還能使用埠號的網址去除錯!
3)網路上的解決方法:如aspnet_regiis.exe -i, 如啟用windows整合,如設定目錄的角色可訪問性,象什麼“Network Service”等等設定可訪問性,這些方法通通不適合於解決本問題,因為我的問題是建立在模擬真實網址的基礎之上的!
解決方案:
方法 1: 禁用環回檢查
請遵循以下步驟:1. 單擊 開始 , 單擊 執行 , 型別 regedit然後單擊 確定 。
2. 中登錄檔編輯器, 找到並單擊以下注冊表項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
3. 右擊 Lsa , 指向 新建 , 然後單擊 DWORD 值 。
4. 型別 DisableLoopbackCheck然後按 Enter。
5. 右擊 DisableLoopbackCheck , 然後單擊 修改 。
6. 在 數值資料 框中, 鍵入 1然後單擊 確定 。
7. 退出登錄檔編輯器, 並重新啟動計算機。
這種方法測試過可以
方法 2: 指定主機名
要指定主機名, 對映到環回地址並可連線到 Web 站點上, 請按照下列步驟:1. 單擊 開始 , 單擊 執行 , 型別 regedit然後單擊 確定 。
2. 中登錄檔編輯器, 找到並單擊以下注冊表項:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
3. 右擊 MSV1_0 , 指向 新建 , 然後再單擊 多字串值 。
4. 型別 BackConnectionHostNames然後按 Enter。
5. 右擊 BackConnectionHostNames , 然後單擊 修改 。
6. 在 數值資料 框中, 鍵入主機名或主機名為站點位於本地計算機, 然後單擊 確定 。
7. 退出登錄檔編輯器, 並重新啟動 IISAdmin 服務