gethostbyname() 不一致地傳回叢集虛擬 IP 位址

文章翻譯 文章翻譯
文章編號: 257577 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

徵狀

如果您的程式使用 gethostbyname 函式,傳回的清單的 IP 位址可能不包含 「 叢集 」 服務所建立的虛擬 IP 位址或它可能會列出目前不擁有的這個節點的 IP 位址。

發生的原因

當叢集服務新增或移除虛擬 IP 位址時,TCP/IP 通訊協定並不會更新快取從中它會傳回 IP 位址。

解決方案

如果要解決這個問題,取得最新的 Service Pack 為 Windows 2000。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
260910如何取得最新的 Windows 2000 Service Pack
此修正程式的英文版應該具有下列檔案屬性或更新版本:
檔案名稱: Q257577_w2k_sp2_x86_en.exe
版本: 1.10.101.0
此套件包含更新的的版本:
Clusres.dll
Dnsapi.dll

狀況說明

Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的問題。這個問題已經先在 Windows 2000 Service Pack 2 中獲得修正。

其他相關資訊

在 Windows NT 4.0 gethostbyname(local node name) 會傳回包含具現化包括叢集虛擬 IP 位址在伺服器上的所有 IP 位址清單。在 Windows 2000 中相同的作業通常會傳回只 IP 位址在永久地指派給伺服器 ; 但是,它有時可以傳回整個清單就像 Windows NT 4]。

行為變更是實作的 DNS 解析程式服務的副作用。解讀器快取在啟動時的本機 IP 位址清單。它會要求解析本機節點名稱時, 它會傳回其快取,而非諮詢 DNS 伺服器清單。問題是解析程式不會從 TCP] 堆疊 PNP 地址變更通知的接聽,但它不會從 DHCP 用戶端接收這些通知。解讀器收到變更通知從 DHCP 時,它會藉由查詢 TCP 堆疊更新它快取的本機 IP 位址清單。結果是,當叢集產生新的地址解析程式不會深入了解它除非 / 直到發生後續的 DHCP 位址變更時。移除叢集地址也是一樣。因為 DHCP 位址變更是極少數,gethostbyname 通常會排除叢集 IP 位址解析本機節點名稱時。

在 Windows 2000 MSMQ 附在其主動/主動案例中在叢集中新的行為而定,並因此中斷與 Hotfix 行為。MSMQ 用 RPC 來進行用戶端/伺服器通訊。在伺服器處理序中啟動,RPC 會使用 gethostbyname 判斷上接聽的 IP 位址清單。其主動/主動] 組態中一個 MSMQ 伺服器處理序都與本機節點] 名稱相關聯,而另一個是叢集虛擬伺服器相關聯。如果 gethostbyname 傳回虛擬伺服器的 IP 位址與本機節點名稱相關聯的處理序,這兩個處理程序將會在該位址上接聽。結果是用戶端嘗試連線到虛擬伺服器處理序可以錯誤地連接到本機節點的程序。因此,MSMQ 取決於叢集虛擬 IP 位址通常不會傳回由 gethostbyname 解析本機節點名稱時的事實。

屬性

文章編號: 257577 - 上次校閱: 2013年10月20日 - 版次: 2.4
這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server
關鍵字:?
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix KB257577 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:257577
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com