Remoting kein Callback möglich.....

  • Thread starter Thread starter Jannis Linxweiler
  • Start date Start date
J

Jannis Linxweiler

Hallo NG!

Ich habe ein Problem mit .NET Remoting.

Bisweilen habe ich herausbekommen, daß mein grundsätzliches Problem mit den
Securityoptions vom .NET Framework zusammenhängt. Ich habe dann die
notwendigen Modifikation am ServerFormatterSinkProvider vorgenommen, habe
aber immer noch ein Problem.

Ich übergebe dem Remoteobjekt zu Callbackzwecken ein MarshalByRefObjekt das
im Client instanzieiert wurde. Ein Zugriff vom Remotobjekt auf dieses Objekt
schlägt allerdings fehl. Es sei denn, Serveranwendung und Clientanwendung
laufen auf dem selben Rechner. In diesem Fall bekomme ich keinerlei
Fehlermeldungen. Ansonsten wird eine Securityexception geworfen.

Ich finde leider meinen Fehler nicht, habe aber den Verdacht, dass ich etwas
bei der Definition der Channel falsch gemacht habe.

Meine beiden Channel sehen folgender maßen aus:

Server:
BinaryServerFormatterSinkProvider provider = new
BinaryServerFormatterSinkProvider();
provider.TypeFilterLevel =
System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
BinaryClientFormatterSinkProvider clientProv = new
BinaryClientFormatterSinkProvider();
System.Collections.IDictionary props = new System.Collections.Hashtable();
props["port"] = 65100;
TcpChannel chan = new TcpChannel(props, clientProv, provider);
ChannelServices.RegisterChannel(chan);
.....
Calculator calc = new Calculator();
RemotingServices.Marshal(calc,"theEndPoint");

Client:
BinaryServerFormatterSinkProvider provider = new
BinaryServerFormatterSinkProvider();
provider.TypeFilterLevel =
System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
BinaryClientFormatterSinkProvider clientProv = new
BinaryClientFormatterSinkProvider();
System.Collections.IDictionary props = new System.Collections.Hashtable();
props["port"] = 0;
TcpChannel chan = new TcpChannel(props, clientProv, provider);
ChannelServices.RegisterChannel(chan);
.....
ICalc calc = (ICalc) Activator.GetObject(
typeof(RemoteTaschenrechner.ICalc),
"tcp://192.168.123.15:65100/theEndPoint");
 
Sorry wrong NQ.... ein wanted to post it in the German NG for C#....

Jannis Linxweiler
 
Back
Top