Ich verwende Codebeispiele aus diesem Artikel von Rick Strahl: http://www.west-wind.com/weblog/posts/324917.aspx um asynchrone Aufrufe an einen WCF-Dienst zu tätigen, was hervorragend funktioniert.
Mein Problem ist folgendes: Der erste Aufruf des WCF-Dienstes dauert etwa 20 ms, während der nächste etwa 1 Sekunde und 20 ms dauert (wobei genau dasselbe geschieht und genau dieselben Daten empfangen werden). Wenn ich den Vorgang wiederhole, ist das Ergebnis immer dasselbe. Jeder zweite Aufruf dauert eine Sekunde länger als der erste.
Ich habe versucht, den InstanceContextMode für meinen Dienst einzustellen:
[ServiceBehavior(IncludeExceptionDetailInFaults = true, InstanceContextMode = InstanceContextMode.PerSession)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public abstract class AjaxPostBack : IAjaxPostBack
Ich habe auch Timer in den Methoden, die auf den Dienst aufgerufen werden, und das Ergebnis ist das gleiche jedes Mal (natürlich einige ms Unterschiede, aber nichts Wesentliches)
"JSON_Took":"00:00:00.0012939","Set_took":"00:00:00.0000274"
(Diese Werte - JSON_Took & Set_took - sind Zeitgeber in dem Code hinter den Methoden. Also nicht die Gesamtzeit von Client-Server-Client. Es ist einfach zu veranschaulichen, dass es nicht ein Problem mit dem eigentlichen Code ist zeitaufwendig)
Irgendwelche Ideen?
Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
---- Interessantes Update ----
Ich habe IE9 RC und auch Firefox heruntergeladen (ich habe in Chrome getestet) Meine Ergebnisse mit den verschiedenen Browsern:
Firefox : Alle Anrufe liegen einheitlich bei ca. 1s 20ms bis 1s 30ms
Chrom : Jeder zweite Aufruf erfolgt mit der Geschwindigkeit von Firefox, der Rest ist 1 Sekunde schneller
IE9 : Alle Anrufe sind praktisch in kürzester Zeit konsistent (~20ms)
Oper : Ziemlich dasselbe wie im IE9 (~30ms)
Ist dies ein Webkit-Problem? (Ich verwende $.ajax, um die WCF aufzurufen)