2016-06-14 4 views
0

Ich habe ein ziemlich verwirrendes Problem zur Hand. Versucht, einige JSON-Dateien in einigen .php-Dateien auf einem Remote-Server zu veröffentlichen.C# WebClient UploadStringAsync braucht Zeit, um irgendwann auszuführen

Der Code sind die folgende:

wc = new WebClient(); 
Uri urlToRequest = new Uri(webserviceUrl + url); 

wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_DownloadDataCompleted); 
wc.Headers.Add(HttpRequestHeader.ContentType, "application/json"); 

var stopwatch = Stopwatch.StartNew(); 

wc.UploadStringAsync(urlToRequest, json); 

Console.WriteLine("Async time: " + stopwatch.ElapsedMilliseconds); 

ich auf dem gleichen Server zu 2 PHP-Dateien bin Entsendung, die gleiche JSON (erwarteten unterschiedlichen Ergebnisse).

Als ich in die erste Datei schreiben bekomme ich diese in der Konsole:

Async time: 2576 

Wenn ich auf die andere veröffentliche ich diese bekommen in der Konsole:

Async time: 0 

Die JSON ich das Senden bin ist eine wirklich einfache {"user":"bob","action":"get"}

Wenn Debuggen und ich einen Haltepunkt zum Beispiel bei wc = new WebClient(); setzen und gehen Sie Schritt für Zeile, beim ersten Anruf der Schritt über h angs bei UploadStringAsync für 2-3 Sekunden, aber beim zweiten Aufruf springt es einfach über (wie es sollte).

Die .php-Dateien befinden sich auf demselben Server. Irgendwelche Ideen, warum derselbe Anruf sich in 2 Aufrufen anders verhält, und sollte nicht UploadStringAsync in allen Fällen async sein?

+0

Sind Sie sicher, dass der Server das Ergebnis nicht das zweite Mal zwischenspeichert? –

Antwort