解決IIS6 0 無法訪問

2022-02-07 08:06:18 字數 2576 閱讀 6632

解決iis 6.0不能啟動--」無法訪問網路「的故障

綜合各種情況分析,認為可能與兩台伺服器都安裝過的isa有關,因為都是單網絡卡發布web服務,為了安全,使用了windows虛擬網絡卡,(可參見前一篇日誌的《託管主機單網絡卡環境下如何發布web服務》),而在這之後因為系統調整,又更改了ip位址),isa倒是沒出問題,簡單的更改就ok了。(後來為了解決iis的故障,我已經解除安裝了isa)。因為這些調整,問題很可能出在埠與ip位址的繫結上。最後終於在這篇文章裡找到了答案《iis使用指南之五-深入理解socket pooling》by 「風間子」--isacn.org。

socket pool(套接字池):iis 啟動時會將所有web站點配置的服務埠繫結在計算機的所有ip位址上(執行netstat -ano可以看到,這些web服務埠偵聽的ip位址是代表所有ip位址的「0.0.0.0"),而不管這些ip位址是否分配給了這些web站點,iis 把繫結的這些sockets稱為socket pool;然後iis再將socket pool中的socket據web站點的配置分配到相應的web站點,這樣避免了不同web站點占用不同ip位址的相同web服務埠時需要不同的socket,從而減少了系統資源的占用,提高了iis的效能。

需要注意的是,web站點所分配的ip位址是從iis的socket pool中進行再分配的,因此你不能分配套接字池中不具有的ip位址給web站點,這會導致web站點無法工作。【這次的問題就出在這裡】

iis 的所有元件均具有socket pooling特性。雖然這樣提高了iis的效能,但是也導致了其他應用程式不能再繫結埠到這些ip位址上。例如web站點偵聽tcp 80埠,那麼iis啟動時會偵聽所有ip位址上的tcp 80埠,此時如果在isa防火牆中做web服務發布,需要偵聽相應的ip位址(例如外部介面的ip位址)上的tcp 80埠,那麼isa防火牆的埠繫結就會失敗,因為iis已經占用了這些埠。【這就是為什麼用isa偵聽http服務的時候需要禁用socket pool特性】

iis 6的新架構:在iis 5中,socket pooling是作為metabase的乙個可配置屬性出現;而在iis 6中是由http.sys來偵聽客戶傳送的http請求,因此也是由它來處理socket pool。http.sys使用乙個ip位址包含列表(http.sys)來決定自己偵聽http請求的ip位址,在每次啟動時讀取此列表並依照此列表進行配置。預設情況下,此ip位址包含列表並不包含任何ip位址,因此 http.sys偵聽本地計算機的所有ip位址。此ip位址包含列表不能通過iis管理控制台或者修改metabase.xml來進行配置,你必須通過微軟提供的windows支援工具httpcfg來配置。

httpcfg 工具專用於http.sys的配置,它作為windows支援工具,附帶在windows server 2003的安裝光碟中。

安裝完成後點選開始所有程式,指向windows support tools,然後選擇command prompt,此時即可執行httpcfg。

我在一台繫結了兩個ip位址的web伺服器上給大家進行演示,如下圖所示,web伺服器繫結了10.1.1.910.1.1.10這兩個ip位址,iis中的預設**的web服務埠是tcp 80,因此http.sys偵聽所有ip位址的80埠。

如下圖所示,返回的錯誤**1168的含義是找不到匹配元素,這代表ip位址包含列表目前沒有任何元素,因此http.sys偵聽本地計算機的所有ip位址。

如下圖所示,返回的錯誤**0代表成功完成。因為http.sys只是在啟動時讀取此ip位址包含列表,所以此時我們需要重啟http.sys。

執行以下命令重啟http.sys:

如下圖所示,http.sys成功重啟。

再查詢一下ip位址包含列表和http.sys偵聽web服務的埠,如下圖所示,已經修改為10.1.1.9了。

我們試著在iis中為web站點分配乙個並未包含在http.sys ip位址包含列表中的ip位址,例如10.1.1.10

此時,你會發現,此web站點已經停止服務了,當你試著啟動它時,錯誤提示不能訪問網路位置

結果如下圖所示,

然後重啟http.sys即可。

有空還是很有必要好好深入讀讀理論。

IIS無法訪問

一 iis預設 無法啟用 我的是windows xp,今天啟用iis,發現我的預設站點停止了,啟用的時候,提示引用內容在本地計算機無法啟動 world wide web publishing 服務錯誤127 找不到指定的程式.解決方案 是windowsxp kb939373 x86 chs.exe補...

iis無法訪問的解決方法

你的iis資料夾的許可權沒有給夠 1.看看你的iis資料夾的許可權 2.看看iis有沒有允許匿名訪問 3。防火牆上要做埠對映措施,將防火牆上的乙個內網埠對映到你內網的伺服器ip位址上!這樣外網就能訪問你內網的伺服器了 資料夾中每個帳號都有讀取的許可權,而且 預設 的身份驗證方法中也選了匿名訪問。我覺...

iis6 0匿名訪問,報401 1錯誤

當開啟 時,提示輸入使用者名稱和密碼,然後無訪問許可權解決方案如下 1 有可能是你的系統中iis啟動賬戶被禁用,啟動賬戶即可。2 如果沒有禁用就可能是iis的匿名訪問的賬號的密碼不一致導致匿名訪問不能進行 修改賬號密碼無效,賬號密碼是iis安裝的時候就由系統自動生成的密碼,儲存在iis的資料庫中,是...