.Net Remoting - Verbindungen plötzlich tot

Meldur

Erfahrenes Mitglied
Hallo,

ich habe hier ein kleines Problem beim .Net Remoting. Der Aufbau ist simpel - ein Server und ein bis drei Clients. Alles läuft lokal auf 127.0.0.1. Nach einer Weile (genaue Zeitspannne nicht reproduzierbar) ist die Verbindung zwischen Server und Clients so, als wäre sie nie hergestellt gewesen. Alle Listener im Server zeigen nur noch NULL an und die Kommandos der Clients laufen ins Leere. Aber es wird keine Exception gefeuert. Für die Clients scheint der Server noch da zu sein, doch dieser hat keine Lust mehr und tut so, als hätten sich nie Clients angemeldet.
Ich stehe vor einem absoluten Rätsel.

Hat jemand eine Idee?
Danke,
Meldur
 
Protokollierst du in einem Log-File mit, was passiert? Gibt das keine Rückschlüsse darauf? Hängt sich der Server komplett auf? Kann es sein, dass eine Endlosschleife ausgelöst wird?

Um den Fehler zu finden, wirst du relativ genau aufzeichnen müssen, was passiert ...
 
Und genau das ist leider das Problem. Der Server hat eigentlich oft zwischen "ich laufe noch" und "ich kenn keine clients mehr" gar nichts zu tun. Er läuft noch und ich kann neue Client anmelden, aber alle anderen sind wie weg. Wie gesagt kann ich das problem leider nicht durch einen Workaround reproduzieren - mir ist schon klar, dass ein PC in der Regel nicht "spontan" reagiert :). Aber der Vorgang ist ziemlich nache dran.
 
Ich habe das Server-Client-Projekt aus einem Chat-Program abgeleitet. Wenn der Client registriert wird, geschieht das so:

Code:
private RemoteEventAdapter<ImageTransfereEventArg> imagesChangedEventAdapter;
...


this.myServer = (IMyServer)RemoteManager.Instance.Connect("MyMainServer", typeof(IMyServer), new IPEndPoint(adress, serverPort), this.ID.ToString());

// Beispiellistener
this.imagesChangedEventAdapter = new RemoteEventAdapter<ImageTransfereEventArg>(this.myServer.ImagesChangedDispatcher);
this.imagesChangedEventAdapter.EventRaised += new EventHandler<ImageTransfereEventArg>(imagesChangedEventAdapter_EventRaised);

Die Listener werden im Client über Dispatcher im Server gehalten. Sind das die Infos, die du brauchst?
 
Zurück