다음을 통해 공유


Custom Proxies 기술 샘플

업데이트: 2007년 11월

이 샘플에서는 RealProxy 클래스의 확장성을 보여 줍니다. RealProxy를 확장하면 원격 개체로 보내거나 원격 개체에서 오는 메시지에 사용자 코드에서 액세스할 수 있습니다. 이 샘플에서는 세 개의 실행 파일을 만듭니다. ProxyWithReturnMessage.exe 응용 프로그램에서는 메시지 데이터를 표시하도록 Invoke 메서드를 재정의합니다. ProxyWithCustomCasting.exe 응용 프로그램에서는 사용자 지정 캐스팅 기능을 보여 주기 위해 IFaq와 IBaz라는 두 개의 인터페이스를 사용합니다. ProxyWiredToHttpChannel.exe 응용 프로그램에서는 Http 채널을 사용하는 RemotingHello 서비스에 대한 호출을 가로채고 전달하는 방법을 보여 줍니다.

중요:

이 샘플을 실행하려면 컴퓨터에 IIS(인터넷 정보 서비스)가 설치되어 있어야 하며, 샘플 응용 프로그램을 실행하기 전에 IIS에 RemotingHello 서비스를 등록해야 합니다.

샘플 사용에 대한 내용은 다음 항목을 참조하십시오.

Download sample

명령 프롬프트를 사용하여 샘플을 빌드하려면

  1. 명령 프롬프트 창을 열고 CS 하위 디렉터리로 이동합니다.

  2. 명령줄에 msbuild CustomProxiesCS.sln을 입력합니다.

    참고:

    이 샘플에서는 세 개의 콘솔 응용 프로그램을 빌드합니다. 출력을 보려면 명령 프롬프트를 사용하여 응용 프로그램을 시작하고 실행해야 합니다.

Visual Studio를 사용하여 샘플을 빌드하려면

  1. Windows 탐색기를 열고 CS 하위 디렉터리로 이동합니다.

  2. CustomProxiesCS.sln의 아이콘을 두 번 클릭하여 Visual Studio에서 파일을 엽니다.

  3. 빌드 메뉴에서 솔루션 빌드를 선택합니다.

서비스를 IIS에 등록하려면

  1. 서비스를 DLL로 컴파일한 다음 서비스가 로드될 bin 디렉터리에 이 DLL을 복사합니다. 위에서 설명한 대로 명령 프롬프트나 Visual Studio를 사용하여 샘플을 빌드하면 서비스가 컴파일되고, ProxyWiredToHttpChannel 아래에 bin 하위 디렉터리가 만들어지고, 이 디렉터리에 Hello.dll이 복사됩니다.

  2. 인터넷 서비스 관리자를 시작하고 서버 노드 아래에서 기본 웹 사이트를 선택합니다. 메뉴에서 작업, 새로 만들기, 가상 디렉터리를 선택하고 다음을 클릭하여 계속합니다.

  3. 별칭으로 RemotingHello를 입력하고 다음을 누릅니다.

  4. 서비스가 위치한 디렉터리를 입력합니다. 1단계에서 DLL이 복사된 위치의 전체 경로를 bin 디렉터리 바로 위까지만 입력합니다.

  5. 다음을 누릅니다. 기본값을 그대로 두고 다음을 다시 클릭한 후 마침을 누릅니다. 이제 서비스가 등록되었고 인터넷 서비스 관리자 창의 기본 웹 사이트 목록에 표시됩니다.

  6. 서비스가 등록된 디렉터리에 web.config 파일이 있는지 확인합니다. 이 파일은 서비스를 설명하는 파일로서, 사용자가 포트 80에서 HTTP 채널을 사용하여 브라우저나 클라이언트로 서비스에 액세스를 시도하면 자동으로 로드됩니다.

이 샘플을 실행하려면

  1. 다음 세 개의 실행 파일 중 하나가 있는 디렉터리로 이동합니다.

    • ProxyWiredToHttpChannel.exe

    • ProxyWithCustomCasting.exe

    • ProxyWithReturnMessage.exe

    각 실행 파일은 콘솔 응용 프로그램과 동일한 이름의 디렉터리 아래 \bin\Debug 하위 디렉터리에 있습니다.

  2. 명령줄에 실행 파일의 이름을 입력합니다. 위에서 설명한 대로 ProxyWiredToHttpChannel.exe를 실행하기 전에 IIS에 RemotingHello 서비스가 등록되어 있는지 확인합니다.

참고 항목

개념

RealProxy 확장

참조

IChannel

IMessage

IRemotingTypeInfo

MarshalByRefObject

OneWayAttribute

RealProxy

System.Collections

System.Runtime.Remoting

System.Runtime.Remoting.Proxies

System.Runtime.Remoting.Messaging

UnmanagedType

기타 리소스

고급 원격 서비스

개체 활성화 및 수명