다음을 통해 공유


채널 선택

.NET Framework Remoting 인프라는 다음과 같은 채널 구현을 제공합니다.

IpcChannel

IpcChannel 클래스는 명명된 파이프를 사용하여 동일한 컴퓨터에서 복수 프로세스 응용 프로그램에 고속 프로세스 간 통신을 제공합니다. IpcChannel의 특징은 다음과 같습니다.

  • 명명된 파이프를 사용하여 송신자와 수신자 간에 통신합니다.

  • 이진 형식과 산업 표준 SOAP serialization 형식으로 페이로드 인코딩을 지원합니다.

  • 개체 참조에 대한 ChannelDataStore를 생성하고 소비합니다.

  • 가장 및 위임을 지원합니다.

  • 고급 액세스 제어를 위해 명명된 파이프에 ACL(액세스 제어 목록)을 지원합니다.

응용 프로그램이 동일 컴퓨터에서 다른 프로세스를 실행하는 다른 응용 프로그램과 통신해야 할 때 IpcChannel을 사용하십시오. IpcChannel은 명명된 파이프를 사용하므로 응용 프로그램은 일반적으로 가장 뛰어난 통신 성능을 얻고 가장 및 대리자를 사용하여 원격 개체에 대한 액세스를 제어할 수 있습니다. 이 기능은 부하가 클 때 제대로 수행되어야 하는 3계층 응용 프로그램의 두 번째 및 세 번째 계층 사이에서 특히 유용합니다.

TcpChannel

TcpChannel 클래스에서는 이진 포맷터를 사용하여 모든 메시지를 이진 스트림으로 serialize하며 TCP 프로토콜을 통해 이 스트림을 대상 URI(Uniform Resource Identifier)로 전송합니다. TcpChannel은 다음과 같은 기능을 수행합니다.

  • TCP 소켓을 사용하여 송신자와 수신자 간에 통신합니다.

  • 이진 형식과 산업 표준 SOAP serialization 형식으로 페이로드 인코딩을 지원합니다.

  • 개체 참조에 대한 ChannelDataStore를 생성하고 소비합니다.

  • 가장 및 위임을 지원합니다.

  • SSPI 암호화를 지원합니다.

TcpChannel은 특정 시기에 다른 서버에 요청하는 스레드가 있는 모든 연결을 열고 캐싱합니다. 클라이언트에서 15-20초 이상 반응이 없으면 소켓 연결이 닫힙니다.

.NET Framework Remoting을 사용하는 여러 개의 응용 프로그램을 빌드하는 경우 잘못하여 HttpChannel을 사용하여 TcpChannel을 통해 수신하는 서버 응용 프로그램 도메인에 연결하기 쉽습니다. 이렇게 연결하면 클라이언트에서는 "기본 연결이 닫혔습니다. 받기에서 오류가 발생했습니다."라는 예외를 받게 됩니다. 이 예외를 받는 클라이언트가 있는 경우에는 클라이언트와 서버에서 일치하지 않는 채널이 있는지 확인해야 합니다.

HttpChannel

HttpChannel 클래스는 SOAP 프로토콜을 사용하여 원격 개체와 메시지를 주고 받습니다. 모든 메시지는 SoapFormatter를 통해 전달됩니다. 이때 메시지는 XML로 변경되고 serialize되며 필요한 SOAP 헤더가 스트림에 추가됩니다. 이진 포맷터도 지정되어 있으면 이진 데이터 스트림이 생성됩니다. 이 데이터 스트림은 HTTP 프로토콜을 사용하여 대상 URI로 전송됩니다. HttpChannel은 SOAP 1.1과 호환되며 다음 기능을 수행합니다.

  • HTTP 프로토콜을 전송으로 사용하여 송신자와 수신자 간에 통신합니다.

  • XML 인코딩 표준인 SOAP로 페이로드 인코딩을 지원하며 이진 형식도 지원합니다.

  • 수신자가 ASP.NET과 TCP 소켓에서 HTTP 요청을 받고 HTTP 응답을 보내도록 설정합니다.

  • 개체 참조에 대한 ChannelDataStore를 생성하고 소비합니다.

  • 가장 및 위임을 지원합니다.

  • SSPI 암호화를 지원합니다.

참고

클라이언트에서 HttpChannel을 Microsoft Internet Explorer와 함께 사용하기 위해 Internet Explorer에서 프록시 설정 자동 구성을 설정할 수는 없습니다. 대신 Internet Explorer에서 명시적으로 프록시 설정을 설정해야 합니다.

HttpChannel은 특정 서버에 대해 한 번에 지정된 수의 연결만 엽니다. 기본값은 2이지만 응용 프로그램 구성 파일에서 clientConnectionLimit 특성을 사용하여 기본값을 변경할 수 있습니다.

.NET Framework Remoting을 사용하는 여러 개의 응용 프로그램을 빌드하는 경우 잘못하여 HttpChannel을 사용하여 TcpChannel을 통해 수신하는 서버 응용 프로그램 도메인에 연결하기 쉽습니다. 이러한 경우 클라이언트에서는 "기본 연결이 닫혔습니다. 받기에서 오류가 발생했습니다."라는 예외를 받게 됩니다. 이 예외를 받는 클라이언트가 있는 경우에는 클라이언트와 서버에서 일치하지 않는 채널이 있는지 확인해야 합니다.

참고 항목

참조

HttpChannel
TcpChannel
IpcChannel

개념

채널