5 Stimmen

Bester Ansatz für WCF-Client

Ich habe Client-Anwendung, die WCF-Dienst verwendet, um einige Daten in Backend-Datenbank einfügen. Die Client-Anwendung wird den Dienst pro Ereignis aufrufen (es kann jede Stunde oder jede Sekunde sein).

Ich frage mich, wie ich diesen Dienst am besten anrufen kann.

Soll ich einen Kommunikationskanal einrichten und ihn die ganze Zeit geöffnet lassen oder soll ich den Kanal nach jedem Anruf schließen und neu einrichten?

5voto

ZombieSheep Punkte 29085

Die erste Frage ist, ob Ihr Server irgendeinen Zustand über den Client direkt beibehalten muss (d.h. führen Sie sitzungsähnliche Transaktionen durch?) Wenn ja, müssen Sie in der Lage sein zu verwalten, wie der Server die Informationen zwischen den Kommunikationen hält.

Mein erster Eindruck von Ihrer Frage ist, dass, wenn es keine Notwendigkeit gibt, eine Verbindung offen zu lassen, diese jedes Mal geschlossen und bei Bedarf eine neue Verbindung hergestellt werden sollte. Dadurch werden Probleme vermieden, bei denen eine Verbindung zwischen Aufrufen in einen fehlerhaften Zustand versetzt werden kann. Der Overhead beim Erstellen und Zerstören von Verbindungen ist minimal, und es wird Ihnen (wahrscheinlich) eine Menge Zeit bei der Fehlersuche sparen. cuando geht etwas schief.

1voto

icelava Punkte 9657

Ich würde denken, Sie wollen wahrscheinlich eine Keep Alive-Muster mit einer konfigurierbaren Dauer, um den zugrundeliegenden Mechanismus zu informieren, die Verbindung zu schließen, wenn die Keep-alive-Dauer ohne Kommunikationsaktivität überschritten wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X