채널 등록

이 항목은 이전 버전의 기존 응용 프로그램과의 호환성을 위해 유지되고 있으나 새로운 개발에는 권장되지 않는 레거시 기술에 대해 설명합니다. 분산 응용 프로그램은 이제 WCF(Windows Communication Foundation)를 사용하여 개발됩니다.

.NET Remoting 시스템에서 클라이언트가 원격 개체에 있는 메서드를 호출하는 경우, 채널 개체는 데이터를 전송합니다. 원격 서비스에서는 둘 이상의 채널을 지원할 수 있으며 클라이언트 응용 프로그램에서는 요구 사항에 가장 적합한 채널을 선택합니다. 클라이언트 구성 파일에 채널을 지정하지 않은 경우 클라이언트에서 원격 개체의 메서드를 호출하면 .NET Remoting 시스템에서 기본 채널 구현(HttpChannel 또는 TcpChannel) 중 하나를 로드합니다. 이때 이 채널 구현은 클라이언트의 네트워크 프로토콜을 지원해야 합니다. 그러나 클라이언트에서 콜백 함수나 이벤트를 예상하는 경우에는 해당 콜백 함수를 수신할 클라이언트 채널을 지정해야 합니다.

채널을 등록하는 방법에는 두 가지가 있습니다. 채널 템플릿을 선언한 다음 응용 프로그램에서 이 채널을 참조하거나 응용 프로그램에서 직접 모든 채널 정보를 지정할 수 있습니다. Machine.config 파일의 기본 채널 템플릿은 대부분의 응용 프로그램에 적합하며 <channel> 태그의 ref 특성을 사용하고 "tcp"나 "http"를 지정하여 <application> 태그 내의 <channels> 태그에서 참조할 수 있습니다. HttpChannel을 사용하는 경우에는 port 특성을 지정할 필요가 없지만 TcpChannel을 사용하는 경우에는 port 특성을 지정해야 합니다.

응용 프로그램에서 서버 개체를 노출하려면, 클라이언트 응용 프로그램이 사용자 개체와 통신할 수 있도록 채널을 등록해야 합니다. 이 작업은 ChannelServices.RegisterChannel 메서드를 사용하거나 구성 파일에 채널을 등록하여 프로그래밍 방식으로 수행할 수 있습니다.

응용 프로그램에서 개체를 사용하는 경우, 시스템 구성 파일에 나열된 기본 클라이언트 채널 중 하나를 서비스 개체에서 사용하지 않는다면, 사용자는 이 개체에 연결되는 채널을 등록해야 합니다. 이 등록 작업은 사용자가 콜백 함수나 이벤트를 수신하려는 모든 경우에 필수적입니다.

자세한 예제는 원격 서비스 예제: 채널 싱크 공급자, <channel> 인스턴스 요소 및 <channel> 템플릿 요소를 참조하십시오.

채널 싱크

개발자는 채널 싱크를 사용하여 클라이언트와 원격 서비스 사이의 메시지 전송 및 serialization을 사용자 지정할 수 있습니다. 채널 싱크는 싱크 공급자가 만들며 구성 파일에서 클라이언트 싱크 공급자와 서버 싱크 공급자를 모두 지정할 수 있습니다. 서버 채널 싱크는 서버에서 메시지를 보내고 받을 때 호출되며 <serverProviders> 요소 내에 지정됩니다. 클라이언트 싱크는 클라이언트에서 메시지를 보내고 받을 때 호출되며 <clientProviders> 요소 내에 지정됩니다.

채널에는 포맷터 싱크가 있어야 합니다. 이 포맷터 싱크는 메시지를 serialize합니다. .NET Framework에는 이진 및 SOAP serialization에 사용되는 포맷터가 들어 있습니다.

사용자 지정 포맷터를 지정한 경우, .NET Remoting 시스템에서는 사용자가 원하는 순서대로 모든 채널이 지정될 것이라고 가정합니다. 따라서 사용자 지정 포맷터를 사용하는 사용자 지정 채널을 선언하는 경우에는 채널 싱크 체인에 포함시키려는 다른 공급자도 지정해야 합니다. 기본 채널 싱크는 추가되지 않습니다.

참고 항목

작업

방법: 구성 파일에 채널 템플릿 만들기

참조

System.Runtime.Remoting.RemotingConfiguration Class

개념

원격 응용 프로그램 구성
원격 개체 구성

관련 자료

구성 파일을 사용하여 원격 개체 등록
.NET Framework Remoting 개요
.NET Framework Remoting 개요