Laden...

[WCF] Dauer der ersten Verbindungserstellung

Erstellt von wdb.lizardking vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.323 Views
wdb.lizardking Themenstarter:in
100 Beiträge seit 2006
vor 16 Jahren
[WCF] Dauer der ersten Verbindungserstellung

Hallo,

ich nutze WCF mit dem wsHttpBinding.

Der erste Verbindungsaufbau zwischen zwei PCs die im gleichen LAN sind, dauert nun etwa ab 10 Sekunden, im Durchschnitt etwa 14 Sekunden.
Pings zwischen beiden Rechern haben eine Laufzeit von <1 Millisekunden.

Nach dem ersten Aufbau der Verbindung wird jeder Zugriff dagegen zeitnah ausgeführt, was auch wunderbar ist.

Nur wieso dauert der Verbindungsaufbau derart lange, werden zu Beginn so viele Steuer- und Metadaten ausgetauscht?

Ich habe probeweise mal das netTCP-Binding zur Kommunikation bemüht, dort war aber das gleiche Verhalten zu beobachten. Die Verbindung brauchte immer noch mehr als 8 Sekunden zum Aufbau.

Im realen Einsatz ist diese Zeitspanne verkraftbar, aber zum Testen ist es wirklich sehr hindernd, wenn man ständig so lange warten muß.

Gibt es darum vielleicht eine Möglichkeit zumindest im Debugmodus eine schnellere Verbindung hinzubekommen?

Als Behavior habe ich noch die Parameter


httpGetEnable="True"
includeExceptionDetailinFaults="True"

für das Binding eingestellt, falls hier eine Optimierung möglich ist.

S
8.746 Beiträge seit 2005
vor 16 Jahren

Wo hostest du den Service? Schonmal in einer Console-App gehostet? Dauert es da auch so lange?

wdb.lizardking Themenstarter:in
100 Beiträge seit 2006
vor 16 Jahren

Ganz normal per ServiceHost, wobei die Open()-Methode ganz simpel in einer Klasse gekapselt ist.
Der Aufruf erfolgt von einem Formular heraus.

Habe es gerade auch in einem Konsolenprojekt gehostet, aber zeigt keinen Unterschied in der Verbindungsdauer.

S
8.746 Beiträge seit 2005
vor 16 Jahren

Dann profile den Service-Aufruf doch mal. Dann siehst du, wo die Zeit bleibt.

wdb.lizardking Themenstarter:in
100 Beiträge seit 2006
vor 16 Jahren

Ich habe mal die Diagnosemethoden von WCF konfiguriert, aber ehrlichgesagt werde ich von den Darstellungen des _Service Trace Viewers _regelrecht erschlagen.

Ist poste trotzdem mal die Stelle, die wohl 12s benötigt, auch wenn ich nicht raussehe für was.
Der Sprung ist zu sehen von 15:17 + 10s auf 15:17 + 22 Sekunden.

S
8.746 Beiträge seit 2005
vor 16 Jahren

Das riecht ein wenig nach Windows-Security. Bei mir dauert es auch immer 10+ Sekunden, bis MS-Netzwerk mich mal nach Username/Passwort fragt. Schalte doch mal die gesamte Security ab.

wdb.lizardking Themenstarter:in
100 Beiträge seit 2006
vor 16 Jahren

Ja der Wahnsinn 😁

Ich hab jetzt ganz nach deinem Tipp einen BindingContext ohne jegliche Sicherheit hinzugefügt und schon dauert die Anmeldephase vom Client keine ganze Sekunde mehr.

Vielen herzlichen Dank