엔드포인트 주소

엔드포인트 주소는 네트워크의 서비스 주소를 나타냅니다. 채널을 열 때 WsOpenChannel 함수를 호출하여 통신할 서비스의 엔드포인트 주소를 제공하고 열려는 채널을 지정해야 합니다.

엔드포인트 주소는 다음으로 구성됩니다.

  • URL
  • 헤더 집합(선택 사항)
  • 확장 집합(선택 사항)
  • 서비스의 보안 ID 를 나타내는 선택적 ID입니다.

메시지 주소가 지정되면 URL은 메시지의 "To" 헤더가 됩니다. 엔드포인트 주소의 일부인 모든 헤더도 메시지에 추가됩니다.

메시지에 추가되는 엔드포인트 주소 헤더를 보여 주는 다이어그램

채널은 WsOpenChannel에 전달된 WS_ENDPOINT_ADDRESS 구조를 사용하여 전송되는 모든 메시지를 자동으로 처리합니다. WsAddressMessage 함수를 사용하여 이 기본 동작을 재정의할 수도 있습니다.

WS_ENDPOINT_ADDRESS 매개 변수로 전달되면 WsOpenChannelWsOpenServiceProxy 함수는 메모리에 WS_ENDPOINT_ADDRESS 매개 변수의 복사본을 만들고 크기는 65536바이트로 제한됩니다. WsAddressMessage 에는 WS_ENDPOINT_ADDRESS 매개 변수의 복사본을 만들 필요가 없으므로 이 제한이 없습니다.

WS_ENDPOINT_ADDRESS 확장 필드에 지정된 확장은 메시지 주소 지정에 사용되지 않고 대신 서비스에 대한 추가 정보(예: 메타데이터)를 제공하는 데 사용할 수 있는 확장성 메커니즘입니다. WsReadEndpointAddressExtension 함수를 사용하여 일반적인 확장을 읽을 수 있습니다.

엔드포인트 주소의 선택적 ID 필드에는 예를 들어 서비스가 실행 중인 컴퓨터의 DNS 이름 또는 서비스가 실행 중인 Windows 계정의 UPN이 포함될 수 있습니다. ID 필드는 메시지 주소 지정에 사용되지 않지만 서비스에 대한 보안 토큰을 가져오고(예: 대상 UPN에 Kerberos 티켓을 가져오는 경우) 서비스 회신의 ID를 확인하는 데 사용할 수 있습니다(예: SSL 중에 반환된 서비스 인증서에 대한 이름 검사에 사용되는 DNS ID).

엔드포인트 주소는 WS_TYPE WS_ENDPOINT_ADDRESS_TYPE 열거형 값으로 serialization을 사용하여 읽고 쓸 수 있습니다. 엔드포인트 주소를 직렬화하려면 WS_ADDRESSING_VERSION 열거형에 지정된 대로 주소 지정 헤더에 사용되는 사양의 버전을 알고 있어야 합니다.