修正︰ IIS 6.0 不正確繫結至連接埠的 IP 位址加入至 IP 包含清單時


狀況


您可能會注意到,Microsoft Internet Information Services (IIS) 6.0 正確繫結至連接埠當 IP 位址新增至 IP 包含清單。請考慮下列情況:
  • Web 伺服器有兩個 IP 位址。這些 IP 位址會繫結到已安裝的網路卡在網際網路資訊服務管理員 (IISM) 在 IIS 6.0 中。在這個範例中,兩個 IP 位址是 10.10.10.2 和 10.10.10.3。
  • 在 IIS 6.0 中有兩個網站。Web 站台 1 繫結至 HTTP 流量的 10.10.10.2:80。SSL 流量的 10.10.10.2:443 也會結合 web 站台 1。Web 站台 2 繫結至 HTTP 流量只的 10.10.10.3:80。
在這個案例中,當您使用netstat命令來檢視 [連接埠聆聽的電腦,您可能會發現,IIS 6.0 上界限到連接埠 80 和連接埠 443 這兩個 IP 位址。

這個問題,就會發生下列任何情況成立時,則為 true:
  • 這兩個 IP 位址已新增至 IP 包含清單。
  • 連接埠 80 和連接埠 443 會繫結上 0.0.0.0。
您無法將 IIS 6.0 DisableSocketPooling屬性設定為 True,以解決此問題。

原因


之所以發生這個問題,是因為 Http.sys 檔繫結至的 IP 位址 IISM 中所設定的網站上的任何連接埠。

解決方案


服務套件資訊

若要解決這個問題,請取得最新的 service pack,Windows Server 2003。如需詳細資訊,按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
如何取得最新的 service pack,Windows Server 2003 的889100

Hotfix 資訊

支援的 hotfix 可從 Microsoft 取得。不過,此 Hotfix 僅用於修正本文中所述的問題。此 Hotfix 只適用於發生此特定問題的系統上。此 hotfix 可能會接受其他測試。因此,如果此問題的影響不會很嚴重,我們建議您等候含此 hotfix 的下一版軟體更新。

如果 hotfix 可供下載,在此知識庫文件頂端將出現「可用的 Hotfix」區段。如果這個區段沒有出現,請連絡 Microsoft 客戶服務及支援以取得 hotfix。

注意如果發生其他問題,或如果需要進行疑難排解,您可能必須建立個別的服務要求。收取支援費用會套用到其他支援問題和此特定 hotfix 無法解決的問題。如 Microsoft 客戶服務及支援的電話號碼或建立個別的服務要求的完整清單,請造訪下列 Microsoft 網站︰注意「 下載 Hotfix 」 表單會顯示 hotfix 可用的語言。如果看不到您的語言,是因為未提供該語言的 Hotfix 。

先決條件

您必須擁有 Microsoft Windows Server 2003 Service Pack 1 (SP1) 安裝套用此 hotfix 之後。

重新啟動需求

套用此 hotfix 後,您必須重新啟動電腦。

Hotfix 取代資訊

此 hotfix 不會取代任何其他 hotfix。

登錄資訊

您必須建立的登錄機碼,以啟用此 hotfix。若要執行這項操作,請參考下列步驟:
  1. 套用此 hotfix。
  2. 按一下 [開始],然後按 [執行]、 輸入regedit,再按 [確定]。
  3. 找出並按一下下列登錄機碼:
    HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
  4. 參數上按一下滑鼠右鍵,指向 [新增],然後按一下 [ DWORD 值
  5. 輸入DisableEndpointSharing,然後再按 ENTER 鍵。
  6. DisableEndpointSharing上按一下滑鼠右鍵,按一下 [修改]、 在 [數值資料] 方塊中輸入1 ,然後按一下[確定]
  7. 刪除接聽 IP 的清單中的任何項目。

    注意若要完成此動作,您必須使用 Microsoft Windows 支援工具安裝。

    如果要判斷是否列出任何 IP 位址,開啟命令提示字元,然後再執行下列命令︰
    httpcfg 查詢 iplisten
    如果接聽 IP 的清單是空的則命令會傳回下列字串︰
    HttpQueryServiceConfiguration completed with 1168. 
    如果命令傳回的 IP 位址的清單,移除清單中每個 IP 位址,使用下列命令︰
    httpcfg 刪除 iplisten-i x.x.x.x
    注意這個命令中,預留位置x.x.x.x會表示接聽 IP 的清單中所列的 IP 位址。

    如果將刪除命令成功,它會傳回下列字串︰
    HttpQueryServiceConfiguration completed with 0. 
  8. 按一下 [開始],按一下 [執行]、 輸入cmd,然後按一下[確定]
  9. 在命令提示字元中,輸入網路停止 HTTP /y,,然後按 ENTER 鍵。
  10. 在命令提示字元中,輸入iisreset /restart,然後再按 ENTER。
注意這項變更將會有任何作用,如果 HTTP。SYS IP 接聽的清單會包含任何項目。

檔案資訊

此 hotfix 的英文版具有下列表格中所列檔案屬性 (或較新的檔案屬性)。這些檔案的日期和時間會以國際標準時間 (UTC) 格式列出。當您檢視檔案資訊時,會將它轉換為本地時間。若要查看 UTC 與當地時間的時差,請在 [控制台] 中的日期和時間項目使用 [時區] 索引標籤。
Windows Server 2003 SP1,Itanium 架構



檔案名稱檔案版本檔案大小日期時間
Http.sys5.2.3790.2419794,62411-Apr-200521:40
Windows Server 2003 SP1 x64
檔案名稱檔案版本檔案大小日期時間
Http.sys5.2.3790.2419535,04011-Apr-200521:40
Windows Server 2003 SP1 x86

檔案名稱檔案版本檔案大小日期時間
Http.sys5.2.3790.2419289,28009-Apr-200503:48

狀態


Microsoft 已確認這是在 < 適用於=""> 一節所列出的 Microsoft 產品的問題。第一次會在 Windows Server 2003 的 Service Pack 2 已經獲得修正這個問題。

更多的資訊


在 Microsoft Internet Information Services 5.0 版,您可以將DisableSocketPooling屬性設定為 IIS 5.0 metabase 中,則為 True,以解決這個問題。雖然DisableSocketPooling屬性是有效的屬性,在 IIS 6.0 metabase 中,這個屬性設定為 True,在 IIS 6.0 metabase 中也無法解決問題。

如需有關軟體更新術語的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

用來描述 Microsoft 軟體更新標準術語的編號 824684描述

參考


如需有關如何將 IP 位址新增至 IP 包含清單的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

813368設定 metabase 屬性 DisableSocketPooling 就沒有作用