다음을 통해 공유


사용자 지정 바인딩 전송 및 인코딩

전송 샘플에서는 다양한 전송 및 메시지 인코딩 요소를 사용하여 사용자 지정 바인딩을 구성하는 방법을 보여 줍니다. 사용자 지정 바인딩은 개별 바인딩 요소의 순서가 지정된 목록으로 정의됩니다.

비고

이 샘플에 대한 설치 절차 및 빌드 지침은 이 항목의 끝에 있습니다.

이 샘플은 자체 호스트를 기반으로 하며, 사용자 지정 바인딩을 사용하여 HTTP, TCP 및 NamedPipe 전송을 지원하도록 세 개의 엔드포인트를 구성하도록 수정되었습니다. 클라이언트 구성도 비슷하게 수정되었으며 클라이언트 코드가 세 개의 엔드포인트 각각과 통신하도록 변경되었습니다.

이 샘플에서는 특정 전송 및 메시지 인코딩을 지원하는 사용자 지정 바인딩을 구성하는 방법을 보여 줍니다. 이 작업은 요소에 대한 전송 및 메시지 인코딩을 구성하여 수행됩니다 binding . 바인딩 요소의 순서는 각각 채널 스택의 레이어를 나타내므로 사용자 지정 바인딩을 정의하는 데 중요 합니다(사용자 지정 바인딩 참조). 이 샘플에서는 텍스트 인코딩이 있는 HTTP 전송, 텍스트 인코딩이 있는 TCP 전송 및 이진 인코딩이 있는 NamedPipe 전송의 세 가지 사용자 지정 바인딩을 구성합니다.

서비스 구성은 다음과 같이 사용자 지정 바인딩을 정의합니다.

<bindings>
    <customBinding>
        <binding name="HttpBinding" >
            <textMessageEncoding
                messageVersion="Soap12Addressing10"/>
            <httpTransport />
        </binding>
        <binding name="TcpBinding" >
            <textMessageEncoding />
            <tcpTransport />
        </binding>
        <binding name="NamedPipeBinding" >
            <binaryMessageEncoding />
            <namedPipeTransport />
        </binding>
    </customBinding>
</bindings>

샘플을 실행하면 작업 요청 및 응답이 서비스 및 클라이언트 콘솔 창에 모두 표시됩니다. 클라이언트는 세 개의 엔드포인트 각각과 통신하여 첫 번째 HTTP, TCP 및 마지막으로 NamedPipe에 액세스합니다. 각 콘솔 창에서 Enter 키를 눌러 서비스 및 클라이언트를 종료합니다.

바인딩은 namedPipeTransport 컴퓨터-컴퓨터 작업을 지원하지 않습니다. 동일한 컴퓨터의 통신에만 사용됩니다. 따라서 컴퓨터 간 시나리오에서 샘플을 실행할 때 클라이언트 코드 파일에서 다음 줄을 주석 처리합니다.

CalculatorClient client = new CalculatorClient("default");
Console.WriteLine("Communicate with named pipe endpoint.");
// Call operations.
DoCalculations(client);
//Closing the client gracefully closes the connection and cleans up resources
client.Close();
Dim client As New CalculatorClient("default")
Console.WriteLine("Communicate with named pipe endpoint.")
' call operations
DoCalculations(client)
'Closing the client gracefully closes the connection and cleans up resources
client.Close()

비고

Svcutil.exe 사용하여 이 샘플의 구성을 다시 생성하는 경우 클라이언트 구성의 엔드포인트 이름을 클라이언트 코드와 일치하도록 수정해야 합니다.

샘플을 설정, 빌드 및 실행하려면

  1. Windows Communication Foundation 샘플 에 대한One-Time 설정 절차를 수행했는지 확인합니다.

  2. 솔루션의 C#, C++또는 Visual Basic .NET 버전을 빌드하려면 Windows Communication Foundation 샘플 빌드의 지침을 따릅니다.

  3. 단일 또는 컴퓨터 간 구성에서 샘플을 실행하려면 Windows Communication Foundation 샘플실행의 지침을 따릅니다.