2013-07-08 8 views
8

Ich habe Problem (in Wirklichkeit nicht eine, sondern viele Probleme),BackgroundTransferService/Anfragen

Ich entwickle Windows Phone 8 App, die BackgroundTransferService für die Übertragung aufgezeichnet WAV-Datei zu verwenden, auf dem HTC 8S fast feine Arbeiten , aber auf Nokia Lumia 920 scheinen seltsames Verhalten, hat es einige nicht verständliche Upload-Limit gleich 0,5 MB genau 512 KB, mit WiFi scheint es funktioniert gut, aber dieses Problem ist über Mobilfunk.

var transferRequest = new BackgroundTransferRequest(new Uri(url, UriKind.Absolute)); 
transferRequest.Tag = DateTime.Now.ToString(CultureInfo.InvariantCulture); 
transferRequest.Method = "POST"; 
transferRequest.UploadLocation = new Uri(defect.VoiceRecordFileName, UriKind.Relative); 
transferRequest.TransferPreferences = TransferPreferences.AllowCellularAndBattery; 

transferRequest.Headers.Add("Content-Type", "audio/wav"); 

transferRequest.TransferStatusChanged += new EventHandler<BackgroundTransferEventArgs>(transferRequest_TransferStatusChanged); 
transferRequest.TransferProgressChanged += new EventHandler<BackgroundTransferEventArgs>(transferRequest_TransferProgressChanged); 

BackgroundTransferService.Add(transferRequest); 

wenn ich TotalBytesSent erreichen = 512KB es stoppen Hochladen

Ich überprüfe dies zu

var tmp = NetworkInformation.GetInternetConnectionProfile(); 
var cost = tmp.GetConnectionCost(); 
var type = cost.NetworkCostType; 

und alles scheint in Ordnung

EDIT:

auf server- Seite ist Einkommen nur 380000 Bytes +/- 5 KB

Und manchmal, nach 10 fehlgeschlagenen Starts (wenn senden nur 380KB usw.) von Upload-Datei ist es plötzlich hochladen: D. Irgendwann, wo ich nicht mehr im Büro bin, funktioniert es perfekt beim ersten Mal und zu anderen Zeiten nie senden Sie es.

Sein völlig unberechenbar Sache

LÖSUNG:

Problem war Server-Side ... Ich hatte generische Handler diese Datei ohne Unterstützung des Range-Header für das Speichern (glaube ich). Wenn ich mein Projekt in "Asp.NET Web Api Project" geändert inspirierte/kopierte von this Tutorial

Es funktioniert gestern nicht, aber heute seine unerwartete Arbeit beginnt: D Crazy Nokia und .NET.

Wir werden morgen sehen, was als nächstes passiert.

+0

Nur für den Fall, sind Sie sicher, dass es 0,5 MB und nicht 5 MB ist? Weil 5 MB ist das Übertragungslimit über Mobilfunknetz –

+0

Ja genau 0,5 MB, weiß ich etwa 5 MB Grenze und ich stelle Limit für die Größe der Aufzeichnung. Beim Debuggen sehe ich in "transferRequest_TransferProgressChanged", dass ich max. 0,5 MB in Anfrage Eigenschaft "request.BytesSent" und ich verstehe nicht warum :). Morgen werde ich versuchen, einige Nokia oder MS Evangelisten zu kontaktieren, um zu helfen. – lukasChudy

+0

seine 50 MB Übertragungsgrenze über Mobilfunk und nicht 5 MB. –

Antwort

0

Wie IukasChudy die Lösung für sein Problem angegeben ist

Problem war Server-Side ... ich generische Handler für das Speichern dieser Datei ohne Unterstützung des Range-Header (glaube ich) hatte. Wenn ich mein Projekt ändern „Asp.NET Web Api Projekt“ inspiriert/kopiert dieses Tutorial

seine Arbeit nicht gestern, aber heute seinen Start unerwartet arbeiten: D Verrücktes Nokia und .NET.

Wir werden morgen sehen, was als nächstes passiert.

P.S. Ich mag es nicht, eine Antwort mit dem Inhalt anderer zu schreiben, aber ich hasse unbeantwortete Fragen, die bereits gelöst sind.