Remoting mellem server og clientcomputer
Jeg er ved at lave en server, som skal bruge et administrativt interface. Dette har jeg valgt at lave gennem remoting, mit problemer dog, at det kun virker hvis både server og client program kører på samme maskine, hvilket ikke er så hensigtsmæssigt.Jeg har forsøgt at illustrere mine 2 filer (server, dll, client) kort på følgende billede: www.developers.dk/remoting.jpg
Mit spørgsmål lyder derfor på, om der er noget jeg har glemt i min kode, som gør at den kan gå videre til en anden computer, eller har gjort forkert. Synes jeg har forsøgt at ændre "localhost" til navnet på min server, uden held. Det skal siges at ikke alle metoder i de 3 klasser er med
Koden til de 3 filer ser således ud:
SERVER
public class Server: RemoteDLL{
public Server(){
// using TCP protocol
TcpChannel channel = new TcpChannel(8080);
ChannelServices.RegisterChannel(channel, true);
RemotingConfiguration.RegisterWellKnownServiceType(typeof MyRemoteObject), "HelloWorld", WellKnownObjectMode.Singleton);
//************************************* TCP *************************************//
Cache.getInstance().Attach(this);
}
}
DLL
public interface RemoteDLL{
// Diverse metoder der skal implementeres i serveren
}
public class MyRemoteObject : MarshalByRefObject
{
public MyRemoteObject()
{
}
}
public class Cache
{
private static Cache instance;
public RemoteDLL server;
public Cache()
{
instance = this;
}
public void Attach(RemoteDLL server)
{
this.server = server;
}
}
CLIENT
public class Client{
private MyRemoteObject server;
public Client(){
TcpChannel chan = new TcpChannel();
ChannelServices.RegisterChannel(chan, true);
server = (MyRemoteObject)Activator.GetObject(typeof(MyRemoteObject), "tcp://localhost:8080/HelloWorld");
}
}
