Remoting spørgsmål. Stop remoting mm.
Hej, jeg har nogle generelle spørgsmål til remoting.Jeg har lavet en applikation der kan starte og stoppe nogle forskellige remoting services.
Jeg starter en service i denne metode der er trådet:
private void Thread_ServerRunner(){
BinaryServerFormatterSinkProvider provider = new BinaryServerFormatterSinkProvider();
provider.TypeFilterLevel = TypeFilterLevel.Full;
TcpServerChannel channel = new TcpServerChannel(server.Name,server.Port,provider);
try {
ChannelServices.RegisterChannel(channel);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(PersitsService),server.Name, WellKnownObjectMode.Singleton);
server.logRecieved("Server started");
server.ServerStarted();
PersitsService persitsService = (PersitsService)Activator.GetObject(
typeof(PersitsService),"tcp://localhost:"+server.Port+"/"+server.Name);
persitsService.IPersitsSession = new PersitsSession(this.server);
while(this.running){
Thread.Sleep(300);
}
}
catch (Exception ex) {
server.logRecieved("Error starting server: "+ex.Message);
}
finally{
ChannelServices.UnregisterChannel(channel);
}
}
Spørgsmål 1:
Jeg kunne godt tænke mig at servicen nedlægges, når tråden løber ud (når this.running=false), hvorved alle klienter derved bliver koblet af. Hvordan gøres dette?
Spørgsmål 2:
Som det kan ses i metoden instantierer jeg et interface i remoteobjektet som klienterne kalder metoder på. Det virker fint, men er det den rigtige måde at gøre det på?
Mvh Casualty
