리모틀링을 통해 노출되는 싱글 톤 클래스에 약간의 문제가 있습니다. 내 서버에서 내가 가진 :.Net Remoting의 싱글 톤 작업
TcpChannel channel = new TcpChannel(Settings.Default.RemotingPort);
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RemotableObject), "RemotableObject",
WellKnownObjectMode.Singleton);
RemotableObject는 MarshalByRefObject를 상속 싱글 개체입니다.
내 클라이언트를 통해 연결하십시오 원격 간다
remoteObject = (RemotableObject)Activator.GetObject(
typeof(RemotableObject),
string.Format("tcp://{0}:{1}/RemotableObject", serverIP, serverPort));
모든 위대한까지 작동하지만이처럼 내 서버 코드에서 단일 개체에 액세스 :
int someValue = RemotableObject.Instance.SomeDynamicValue;
그것을 클라이언트가하는 것과 다른 인스턴스에 액세스합니다. 또한 RemotableObject의 개인 생성자가 디버깅 중에 두 번 눌려 졌음을 확인했습니다.
내 서버 코드에서 Remotable을 통해 RemotableObject에 인스턴스를 가져 오는 경우 원하는 동작을 얻을 수 있지만 원격 오버 헤드없이 서버에서 내 클라이언트와 동일한 개체에 액세스 할 수있는 방법이 있습니까?
완벽하게 작동했습니다. 빠른 답변 감사합니다! – Todd
'메지리'의 가치는 무엇입니까? 내 TCP 채널은'UsersTcp'라고 불리우며 그 이름과 uri로 시도했습니다 :'tcp : // localhost : 5000/UserTcp' 그리고 둘 다 서비스 발견 오류가 없습니다. – moondaisy
'tcp : // MYSERVERNAME : 5212/UsersTcp'와 같이'tcp : // [ServerName] : [PortNumber]/MesgUri'이어야합니다. –