查詢期間會發生什麼情況
本節描述當 32 位用戶端在自己的網域中搜尋名稱時,網路如何處理查詢。
當您的用戶端應用程式呼叫 RpcNsBindingImportBegin時,位於用戶端電腦上的定位器會嘗試滿足此要求。 如果快取中沒有任何專案,它會將 RPC 的要求轉送至主要定位器。 如果主要定位器在其快取中找不到任何專案,它會使用郵件位置廣播,將要求傳送至網域中的所有電腦。 如果有相符專案,每部電腦上的定位器都會由導向的郵件位置回應。 (例如,如果該電腦上的進程已匯出 interface.) 回應會定序,而且 RPC 是從用戶端的進程定位器完成,這會回復用戶端進程本身。
在網域中,用戶端定位器會在下列位置搜尋主要定位器:
- 在主要網域控制站上
- 在每個備份網域控制站上
如果找不到相符專案,用戶端定位器會將本身宣告為主要定位器。 因此,如果無法在本機滿足查詢,則會廣播查詢。
在工作組中,用戶端定位器會維護定位器已廣播的電腦快取。 它會使用已執行最長做為主要定位器的定位器。 如果該電腦無法使用,則會使用下一部最長廣播電腦,依此類故。 如果用戶端需要主要定位器,而且快取是空的,它會傳送要求主要定位器回應的特殊郵件位置廣播來恢復快取。 如果沒有回應,用戶端定位器會將本身宣告為主要定位器,而且如果無法在本機滿足查詢,則會廣播查詢。
如果您的用戶端應用程式是 16 位或 MS-DOS 型程式,這會變更。 在此情況下,用戶端電腦上沒有執行定位器,Rpcns1.dll或 Rpcnslm.rpc 包含尋找主要定位器的程式碼。 所有要求都會直接轉送到主要定位器。
這些指導方針適用于用戶端網域中的名稱,例如 「/.:/ 的名稱entryname「. 如果用戶端透過使用 「/.../DOMAIN/entryname」,向另一個網域要求名稱,用戶端定位器會將要求轉送至指定的網域,如果它沒有答案,則會將其廣播。 如果網域關閉或實際上是工作組,要求將會失敗。
注意
使用名稱服務中的專案時,請記住下列內容:
- 用戶端無法使用 「/.../DOMAIN/entryname」 語法,在自己的網域中尋找專案。 使用語法 「/.:/entryname「. 不過,您可以使用 「/.../DOMAIN/entryname」 來尋找另一個網域中的專案。
- 「/.../DOMAIN/entryname」 中的功能變數名稱必須是大寫。 尋找相符專案時,定位器會區分大小寫。
- 定位器專案名稱也會區分大小寫,但不需要大寫。
- 當用戶端使用 「/.:/entryname「 語法,定位器將不會搜尋其他網域中的專案,即使它們與登入網域具有信任關係也一樣。
- 例如,子網) ,廣播不會跨 LAN 區段 (。 因此,定位器在具有多個子網的組織中會受到限制。