Ich remote gerade zum ersten mal und ein wenig klappt es, aber ich bin auf
Problem gestossen das ich mir nicht erklären kann. Es hat wohl was mit den Channels zu tun.
Ich habe eine normale Anwendung die ein Objekt als Singleton zur Verfügung stellt auf dem localhost. Eine Client holt sich nun einen Verweis auf dieses Objekt genau wohl eigentlich einen Proxy wovon man allerdings nix mitbekommt. Es klappt ja auch soweit..
Mein Server:
Mein Client:
Was ist nun das Problem ?
Wenn ich auf dem RemotingObject eine primitive Methode aufrufe klappt das.
[Serializable]
class myCustomClass : MarshalByRefObject
{
public myCustomClass ()
{
}
public string name;
}
[Serializable]
class myRemoteObject : MarshalByRefObject
{
public myRemoteObject()
{}
public void HelloMethod(string sMsg){MessageBox.Show(sMsg);}
}
myRemoteObject.HelloMethod("Das ist ein Test");
Problem gestossen das ich mir nicht erklären kann. Es hat wohl was mit den Channels zu tun.
Ich habe eine normale Anwendung die ein Objekt als Singleton zur Verfügung stellt auf dem localhost. Eine Client holt sich nun einen Verweis auf dieses Objekt genau wohl eigentlich einen Proxy wovon man allerdings nix mitbekommt. Es klappt ja auch soweit..
Mein Server:
Code:
TcpChannel myChannel = new TcpChannel(3021); ChannelServices.RegisterChannel(myChannel); RemotingConfiguration.RegisterWellKnownServiceType(typeof(myRemoteObject), "RemoteObject", WellKnownObjectMode.Singleton); myRemoteObject myObject = (myRemoteObject)Activator.GetObject(typeof(myRemoteObject),"tcp://localhost:" + 3021.ToString() + "/RemoteObject" );
Mein Client:
Code:
TcpChannel myChannel = new TcpChannel(3021); ChannelServices.RegisterChannel(myChannel); myRemoteObject myObject = (myRemoteObject)Activator.GetObject(typeof(IVWebServiceClient),"tcp://localhost:" + 3021.ToString() + "/RemoteObject");
Was ist nun das Problem ?
Wenn ich auf dem RemotingObject eine primitive Methode aufrufe klappt das.
[Serializable]
class myCustomClass : MarshalByRefObject
{
public myCustomClass ()
{
}
public string name;
}
[Serializable]
class myRemoteObject : MarshalByRefObject
{
public myRemoteObject()
{}
public void HelloMethod(string sMsg){MessageBox.Show(sMsg);}
}
myRemoteObject.HelloMethod("Das ist ein Test");