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.
Wo hostest du den Service? Schonmal in einer Console-App gehostet? Dauert es da auch so lange?
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.
Dann profile den Service-Aufruf doch mal. Dann siehst du, wo die Zeit bleibt.
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.
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.
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