http://www.codeproject.com/Articles/8771/Simple-but-potentially-useful-example-of-NET-Remot에서 간단한 .Net 원격 예제를 다운로드했습니다. 예제가 작동합니다. 서버 사이드 코드는 클라이언트에 의해 호출됩니다. 이제 아래 코드와 같은 클라이언트 코드를 내 C# 프로젝트에 복사하면 SocketException이 발생합니다. 대상 컴퓨터가 적극적으로 거부했기 때문에 연결할 수 없습니다..Net Remoting은 예제에서 작동하지만 내 어셈블리에서는 작동하지 않습니다.
EDIT 1 START
그것도 점점 낯선 사람. 내가 작동하는 클라이언트로 테스트 프로젝트를 가지고 작업중인 프로젝트를 내가 작업하고있는 솔루션에 추가하고 프로젝트의 새로운 디버그 인스턴스를 실행합니다. (유일한 프로젝트는 그 순간에 솔루션에서 실행되었습니다) 그것은 나에게 SocketException을 준다 : 대상 기계가 그것을 적극적으로 거부했기 때문에 어떤 연결도 만들 수 없다. 솔루션 기반의 구성과 관련이있는 것처럼 보입니다.
END 1 END 때문에 내가 뭔가를 놓친 경우보고 싶었다이 이상한 행동의
. 그래서 새로운 솔루션으로 새로운 (winforms) 프로젝트를 만들었고 똑같은 코드를 새로운 form1_load 이벤트에 넣었습니다. 그리고 서버 측 코드는이 새로 생성 된 winforms 애플리케이션에 의해 호출됩니다. 한 응용 프로그램이 서버 측 코드를 실행하기 위해 원격으로 연결하고 다른 응용 프로그램이 동일한 코드를 사용하여 수행 할 수없는 방법은 무엇입니까? 그리고 예, Windows 방화벽이 꺼져 있고 다른 방화벽이 없습니다.
위의 내용은 모두 한 대의 컴퓨터에서 테스트됩니다. 따라서 물리적 네트워크가 필요 없습니다.
제안 사항?
[STAThread]
static void Main()
{
TcpClientChannel channel = new TcpClientChannel();
ChannelServices.RegisterChannel(channel);
IProcessActivator.IProcessActivator process_activator = (IProcessActivator.IProcessActivator)Activator.GetObject
(
typeof(IProcessActivator.IProcessActivator),
"tcp://localhost:9000/ProcessActivator"
);
process_activator.Run("IExplore.exe", @"http://www.codeproject.com");
}
해결 서비스는 Solutation A의 클라이언트가 연결할 수 있지만 솔루션 B의 코드가 정확히 동일한 클라이언트는 올바른 포트에서 실행되지 않습니다. 방화벽이 꺼져있어 문제가되지 않아야합니다. –