端點位址

端點位址代表網路上服務的位址。 當您開啟 通道時,藉由呼叫 WsOpenChannel 函式,您必須提供要與其通訊之服務的端點位址,以及指定要開啟的通道。

端點位址包含:

  • URL
  • 一組標頭 (選擇性)
  • 一組擴充功能 (選擇性)
  • 代表服務安全性身分識別的選擇性身分識別。

當訊息已定址時,URL 會變成訊息的「To」標頭。 任何屬於端點位址的標頭也會新增至訊息。

此圖顯示要新增至訊息的端點位址標頭。

通道會使用傳遞至WsOpenChannel的 WS_ENDPOINT_ADDRESS結構,自動處理傳送的任何訊息。 您也可以使用 WsAddressMessage 函式來覆寫此預設行為。

WS_ENDPOINT_ADDRESS 當做參數傳遞時, WsOpenChannelWsOpenServiceProxy 函式會在記憶體中建立 WS_ENDPOINT_ADDRESS 參數的複本,且其大小限制為 65536 個位元組。 WsAddressMessage 沒有這項限制,因為它不需要建立 WS_ENDPOINT_ADDRESS 參數的複本。

WS_ENDPOINT_ADDRESS的擴充功能欄位中指定的擴充功能不會用於定址訊息,而是可用來提供其他資訊 (的擴充性機制,例如,關於服務的中繼資料) 。 您可以使用 WsReadEndpointAddressExtension 函式 來讀取通用延伸模組。

端點位址的選擇性身分識別欄位,例如,服務執行所在電腦的 DNS 名稱,或服務執行所在的 Windows 帳戶 UPN。 識別欄位不會用於定址訊息,但可用於取得服務的安全性權杖 (,例如,取得目標 UPN) 的 Kerberos 票證,以及驗證服務回復的身分識別 (例如,用於 SSL) 期間傳回之服務憑證名稱檢查的 DNS 身分識別。

端點位址可以使用序列化來自 WS_TYPE 的WS_ENDPOINT_ADDRESS_TYPE列舉值來讀取和寫入。 請注意,若要序列化端點位址,您必須知道用於定址標頭的規格版本,如 WS_ADDRESSING_VERSION 列舉中所指定。