방법: 클라이언트 응용 프로그램 빌드
방법: 원격화할 수 있는 형식 빌드에서 정의되고 호스트 응용 프로그램 빌드에서 만들어진 응용 프로그램에 의해 호스팅되는 원격 형식의 클라이언트를 빌드하려면 응용 프로그램이 해당 원격 개체의 클라이언트로 자신을 등록하고 클라이언트의 응용 프로그램 도메인에 있는 것처럼 개체를 호출해야 합니다. .NET Remoting 시스템에서는 클라이언트 호출을 차단하여 원격 개체에 전달하고 결과를 클라이언트에 반환합니다. 다음 코드 프로시저에서는 간단한 원격 클라이언트를 빌드하는 방법을 보여 줍니다.
간단한 원격 클라이언트를 빌드하려면
System.Runtime.Remoting네임스페이스 가져오기
클라이언트 응용 프로그램에서 원격 개체를 찾고 클라이언트 응용 프로그램과 같은 폴더에 파일을 저장할 수 있도록 클라이언트 구성 파일을 만듭니다. 다음 구성 파일 예에서는
RemotableType
원격 개체에 대한 형식 정보를RemotableType
어셈블리에서 찾을 수 있고 클라이언트에서 https://localhost:8989/RemotableType.rem에 위치한RemotableType
개체를 만들고 사용해야 하는 원격 시스템을 보여 줍니다.<configuration> <system.runtime.remoting> <application> <client> <wellknown type="RemotableType, RemotableType" url="https://localhost:8989/RemotableType.rem" /> </client> </application> </system.runtime.remoting> </configuration>
이 구성 파일의 URL 특성에 대한 자세한 내용은 활성화 URL을 참조하십시오. 이 응용 프로그램을 네트워크에서 실행하려면 클라이언트 구성의 **"localhost"**를 원격 컴퓨터의 이름으로 바꿔야 합니다.
참고
이전 구성 파일에는 몇 가지 설정만 포함되어 있지만 .NET Remoting을 사용할 때 발생하는 대부분의 문제는 이러한 설정 중 일부가 정확하지 않거나 클라이언트 응용 프로그램의 구성 설정과 일치하지 않기 때문에 발생합니다. 즉, 이름을 잘못 입력하거나 실수로 포트 또는 특성을 지정하지 않는 경우가 많습니다. 원격 응용 프로그램에서 문제가 발생하면 먼저 구성 설정을 확인하십시오.
클라이언트 응용 프로그램을
Client.
language-extension으로 저장합니다(언어 확장이 컴파일할 언어인 경우 원하는 다른 파일 이름을 사용할 수 있음). 방법: 원격화할 수 있는 형식 빌드 항목에서 빌드한RemotableType.dll
의 복사본을 저장한 디렉터리에 이 파일을 저장합니다.참고
클라이언트 응용 프로그램을 Listener.exe 응용 프로그램이 있는 디렉터리에 저장하지 마십시오. 그렇지 않으면 응용 프로그램이 같은 디렉터리에 있을 때 어셈블리 및 형식 확인이 수행되지 않을 수 있으므로 원격 참조를 받지 못하거나 이용하지 못할 수도 있습니다.
.NET Framework SDK와 함께 제공된 명령줄 도구를 사용하여 클라이언트 응용 프로그램이나 호출 실행 파일을 컴파일합니다. 예를 들어,
Client.
language-extension 클라이언트 응용 프로그램을 컴파일하려면 명령 프롬프트에서 클라이언트 응용 프로그램이 저장되어 있는 폴더로 디렉터리를 변경한 후 다음 명령을 입력합니다.vbc /r:RemotableType.dll Client.vb
csc /noconfig /r:RemotableType.dll Client.cs
예제
' Client.vb
Imports System
Imports System.Runtime.Remoting
Public Class Client
Public Shared Sub Main()
RemotingConfiguration.Configure("Client.exe.config")
Dim remoteObject As New RemotableType()
Console.WriteLine(remoteObject.StringMethod())
End Sub 'Main
End Class 'Client
// Client.cs
using System;
using System.Runtime.Remoting;
public class Client{
public static void Main(){
RemotingConfiguration.Configure("Client.exe.config");
RemotableType remoteObject = new RemotableType();
Console.WriteLine(remoteObject.StringMethod());
}
}