Hallo,
ich experimentiere grad etwas mit Remoting herum und möchte dabei ein RemotingObjekt mit einer Methode SendMessage(string) und einem Event Callback definieren.
Dazu existiert in einer Contract-Assembly folgendes RemoteObjekt:
public class EventSource : MarshalByRefObject, RemotingTest.IEventSource
{
public void SendMessage(string Message)
{
Console.WriteLine(Message);
Callback();
}
public event Action Callback;
}
Mein Client befindet sich in einer Client.exe und sieht wie folgt aus:
Console.WriteLine("Key!");
Console.ReadKey();
TcpChannel channel = new TcpChannel();
ChannelServices.RegisterChannel(channel, false);
IEventSource obj = (IEventSource)Activator.GetObject(typeof(EventSource), "tcp://localhost:55666/HelloWorld");
obj.Callback += () => Console.WriteLine("Callback!");
obj.SendMessage("hallo welt");
Console.ReadKey();
Mein Server befindet sich in einer Server.exe und sieht wie folgt aus:
EventSource obj = new EventSource();
BinaryServerFormatterSinkProvider serverProv = new BinaryServerFormatterSinkProvider();
serverProv.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;
BinaryClientFormatterSinkProvider clientProv = new BinaryClientFormatterSinkProvider();
IDictionary props = new Hashtable();
props["port"] = 55666;
TcpChannel channel = new TcpChannel(props, clientProv, serverProv);
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(EventSource), "HelloWorld", WellKnownObjectMode.Singleton);
Console.ReadKey();
Sobald ich nun im Client mit der Zeile
obj.Callback += () => Console.WriteLine("Callback!");
das Event abbonieren möchte, bekomme ich eine TargetInvocationException mit folgender InnerException:
{"Die Datei oder Assembly "RemotingClient, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.":"RemotingClient, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"}
Ich verstehe den Fehler nicht und habe nun schon seit einer Stunde google befragt.
Warum funktioniert das nicht?
Gruß David