비동기 원격 서비스
이 항목은 이전 버전의 기존 응용 프로그램과의 호환성을 위해 유지되고 있으나 새로운 개발에는 권장되지 않는 레거시 기술에 대해 설명합니다. 분산 응용 프로그램은 이제 WCF(Windows Communication Foundation)를 사용하여 개발됩니다.
원격 시나리오의 비동기 프로그래밍은 .NET Remoting 자체의 구성과 요구 사항을 제외하고 단일 응용 프로그램 도메인 또는 컨텍스트의 비동기 프로그래밍과 동일합니다. .NET Remoting과 동기 및 비동기 대리자를 사용한 전체 샘플은 원격 서비스 예제: 비동기 원격 서비스를 참조하십시오.
단일 응용 프로그램 도메인의 비동기 프로그래밍과 마찬가지로 .NET Remoting 시나리오에서 비동기 프로그래밍을 사용하는 경우 다음과 같은 특징이 있습니다.
호출자가 특정 원격 호출이 비동기인지 여부를 결정합니다.
원격 형식이 클라이언트의 비동기 동작을 명시적으로 지원하지 않아도 됩니다.
런타임이 전체 형식 안전을 적용합니다.
System.Threading 개체를 적절하게 사용하여 메서드를 기다리거나 동기화해야 합니다.
그러나 응용 프로그램 도메인 또는 컨텍스트 경계를 넘어 호출하는 응용 프로그램에서 .NET Remoting을 사용하려면 서버에서 원격 호출을 받을 수 있도록 클라이언트 응용 프로그램을 구성해야 합니다. 이렇게 하려면 클라이언트 채널에 포트 "0"을 지정하면 됩니다. 이 요구 사항의 이유는 비동기 호출이 수행된 후 서버가 클라이언트를 콜백할 수 있도록 하지 않으면 호출을 검색할 방법이 없기 때문입니다.
클라이언트는 MarshalByRefObject를 확장하거나 원격 형식 자체를 구성할 필요가 없지만 그 외에는 서버로 사용할 원격 형식과 동일한 규칙을 따라야 합니다.
콜백 메서드는 인스턴스 메서드여야 합니다. 정적 메서드 호출은 원격이 아닙니다.
콜백 함수를 수신 대기하려면 채널을 등록해야 합니다.
참고 항목
작업
개념
원격 개체 메서드 비동기 호출과 관련된 문제
원격 서비스 예제: 비동기 원격 서비스
원격 응용 프로그램 구성