바인딩은 클라이언트 또는 서비스 엔드포인트가 생성될 때마다 서비스 런타임에 의해 평가되는 바인딩 요소라고 하는 특수 구성 요소의 컬렉션입니다. 바인딩 내의 바인딩 요소의 형식 및 순서는 엔드포인트의 채널 스택에 있는 프로토콜 및 전송 채널의 선택 및 스택 순서를 결정합니다.
바인딩, 특히 시스템 제공 바인딩에는 일반적으로 캡슐화된 바인딩 요소의 가장 일반적으로 수정된 속성을 반영하는 여러 구성 속성이 있습니다.
바인딩은 정확히 하나의 전송 바인딩 요소를 포함해야 합니다. 각 전송 바인딩 요소는 바인딩에 최대 하나의 메시지 인코딩 바인딩 요소를 추가하여 재정의할 수 있는 기본 메시지 인코딩 바인딩 요소를 의미합니다. 바인딩에는 전송 및 인코더 바인딩 요소 외에도 서비스에 필요한 기능을 구현하고 한 엔드포인트에서 다른 엔드포인트로 SOAP 메시지를 보내는 데 필요한 여러 프로토콜 바인딩 요소가 포함될 수 있습니다. 자세한 내용은 바인딩을 사용하여 서비스 및 클라이언트 구성을 참조하세요.
바인딩과 바인딩 요소의 확장
WCF(Windows Communication Foundation)에는 광범위한 시나리오를 다루는 시스템 제공 바인딩이 포함되어 있습니다. 자세한 내용은 System-Provided 바인딩을 참조하세요. 그러나 WCF에 포함되지 않은 바인딩을 만들고 사용해야 하는 경우가 있을 수 있습니다. 다음 시나리오에서는 새 바인딩을 생성해야 합니다.
새 바인딩 요소(예: 새 전송, 인코딩 또는 프로토콜 바인딩 요소)를 사용하려면 해당 바인딩 요소를 포함하는 새 바인딩을 만들어야 합니다. 예를 들어 UDP 전송에 대한 사용자 지정
UdpTransportBindingElement
을 추가한 경우 이를 사용하기 위해 새 바인딩을 만들어야 합니다. 형식을 사용하여 이 동작을 System.ServiceModel.Channels.CustomBinding 수행하는 방법에 대한 자세한 내용은 사용자 지정 바인딩을 참조하세요.시스템 제공 바인딩이 공용 속성에 노출되지 않도록 기존 바인딩 요소를 구성합니다. 예를 들어 서명 및 암호화 작업이 수행되는 순서를 변경하려면 새 바인딩을 만들어야 합니다. 이 동작을 수행하는 방법에 대한 자세한 내용은 방법: System-Provided 바인딩 사용자 지정을 참조하세요.
특정 구성 옵션만 노출하는 회사 표준 바인딩을 설정하려면 예를 들어, 보안을 비활성화할 수 없는 WSHttpBinding의 회사용 변형을 만들려면, 보안이 항상 활성화된 상태로 WSHttpBinding처럼 작동하는 새 바인딩을 생성하세요. 자세한 내용은 User-Defined 바인딩 만들기를 참조하세요.
메타데이터의 일부 사용자 지정을 수행하려면 일반적으로 일부 사용자 지정 바인딩 요소를 구성하거나 사용해야 하는 것은 아닙니다. 바인딩 및 바인딩 요소에 대한 메타데이터 지원을 제공하는 방법에 대한 자세한 내용은 구성 및 메타데이터 지원을 참조하세요.
채널, 바인딩 및 바인딩 요소
바인딩 및 바인딩 요소는 특성 및 동작을 포함하는 애플리케이션 프로그래밍 모델과 팩터리 및 수신기, 메시지 인코더, 전송 및 프로토콜 구현을 포함하는 채널 모델 간의 연결입니다. 일반적으로 바인딩 요소 및 바인딩은 애플리케이션 계층에서 채널을 사용할 수 있도록 구현됩니다.
채널 계층은 서비스 계층 간에 메시지를 수신하거나 수신하고 엔드포인트 간에 해당 메시지를 전송합니다. 클라이언트에서 채널 계층은 네트워크 엔드포인트에 대한 채널을 만드는 채널 팩터리 스택입니다. 서비스에서 채널 계층은 네트워크 엔드포인트에서 수신된 채널을 허용하는 채널 수신기의 스택입니다.
프로토콜 채널과 전송 채널의 두 가지 일반적인 채널 유형이 있습니다. 전송 채널은 한 네트워크 엔드포인트에서 다른 네트워크 엔드포인트로 메시지의 실제 전송을 담당합니다. 전송 채널에는 기본 메시지 인코더가 있어야 하며 메시지 인코더 바인딩 요소를 통해 제공되는 대체 메시지 인코더를 사용할 수 있어야 합니다. 메시지 인코더는 System.ServiceModel.Channels.Message를 와이어 표현으로 변환하고, 그 반대로도 변환합니다. 프로토콜 채널은 SOAP 수준 프로토콜(예: WS-Security 또는 WS-ReliableMessaging)을 구현하는 역할을 담당합니다.
전송 및 프로토콜 채널의 기본 요구 사항은 필요한 채널 인터페이스를 구현하는 것입니다. 작업 채널 계층을 만들려면 연결된 팩터리 및 수신기 등이 있어야 합니다. WCF에서 채널 구현을 사용하려면 각 채널에 대해 BindingElement로부터 파생된 연결된 바인딩 요소가 필요하며, 구성 파일에 BindingElementExtensionElement로부터 파생되어 포함할 수 있는 관련 바인딩 확장 요소가 있어야 합니다.
앞에서 설명한 것처럼 메시지 인코더, 프로토콜 및 전송 채널 구현에 대한 바인딩 요소를 쌓아 채널 스택을 형성할 수 있으며 정렬된 집합에 정렬하는 메커니즘은 바인딩입니다. 바인딩 및 바인딩 요소는 애플리케이션 프로그래밍 모델을 채널 모델에 연결합니다. 코드에서 채널 구현을 직접 사용할 수 있지만 인코더, 전송 및 프로토콜이 바인딩 요소로 구현되지 않는 한 서비스 계층 프로그래밍 모델에서 사용할 수 없습니다.
채널 및 해당 바인딩 요소 개발에 대한 자세한 내용은 채널 계층 확장을 참조하세요.