Forum: PC-Programmierung WCF Verbindung zw. Service und GUI in C#


von Sven L. (sven_rvbg)


Lesenswert?

Hallo zusammen,
hab einen Windows-Service und eine GUI-Application.

Die Gui baut beim Start eine Verbindung zum Service auf.

Der Service aktualisiert die GUI, bzw. Stößt ein Polling an.

Dies passiert alle 1000ms und läuft so weit.

Igrendwann wird die GUI nicht mehr aktualisiert, klickt man auf die GUI 
ist diese langsam und reagiert nicht mehr richtig.

Weiß jemand wie man die WCF-Verbindung überwachen kann und im Fall eines 
Verbindungsabbruchs die Verbindung neu aufbauen kann?

Sprich die GUI merkt das keine Daten mehr vom Service kommen und 
initialisert eine neue Verbindung.

von Sven W. (Gast)


Lesenswert?

Hallo Sven

Hast du schon mal den Speicherverbrauch deiner beiden Komponenten 
angeschaut? Vielleicht ist der Arbeitsspeicher nach einer Zeit am Ende?

Mfg Sven

von Sven L. (sven_rvbg)


Lesenswert?

Hi,
nein der Speicher scheint nicht das Problem zu sein...

Bin da leider noch nicht wirklich weiter gekommen.

Wie gesagt die ganze Verbindung gescheit zu überwachen geht irgendwie 
auch nicht, die entsprechenden Ereignisse lösen nicht aus.

Das ganze geht schon los, das ich auf Clientseite nicht warten kann, bis 
der Server da ist.

client = new MyContractClient(this, new NetNamedPipeBinding(), new 
EndpointAddress("net.pipe://localhost/MyApp/ServicePipe"));
            client.InnerChannel.Faulted += Channel_Faulted;
            client.InnerDuplexChannel.Faulted += Channel_Faulted;
            pipeProxy = client.ChannelFactory.CreateChannel();

Die Objekte sind immer im State Created, egal ob einen Verbindung zum 
Server besteht oder nicht.

Das Einzige was ich herausgefunden habe, ist das vom Service irgendwann 
keine Callbacks mehr an die GUI mehr zu gehen scheinen. Warum das meine 
GUI allerdings unbenutzbar macht, keine Ahnung.

Beende ich den Service, dann hängt die GUI nicht, obwohl die Verbindung 
zum Servce ja auch weg ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.