Mam problem (w rzeczywistości nie jeden, ale wiele problemów),BackgroundTransferService/Zapytanie
Zajmuję Windows Phone 8 aplikacji, które używają BackgroundTransferService transferu nagrany plik wav na HTC 8S pracuje prawie w porządku , ale w Nokii Lumia 920 wydaje się dziwne zachowanie, ma nieczytelny limit wysyłania równy 0,5 MB dokładnie 512 KB, z WiFi wydaje się działać dobrze, ale ten problem jest ponad komórkowym.
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);
kiedy sięgam TotalBytesSent = 512KB zatrzyma przesyłanie
sprawdzić to zbyt
var tmp = NetworkInformation.GetInternetConnectionProfile();
var cost = tmp.GetConnectionCost();
var type = cost.NetworkCostType;
i wszystko wydaje się dobrze
EDIT:
na server- strona ma tylko dochód 380000 bajtów +/- 5 KB
Czasami po 10 nieudanych uruchomieniach (przy wysyłaniu tylko 380KB itd.) Przesłanego pliku należy go natychmiast załadować: D. Gdzieś, gdzie jestem poza biurem, działa idealnie za pierwszym razem, a innym razem nigdy go nie wysyłaj.
Jest rzeczą całkowicie nieprzewidywalne
ROZWIĄZANIE:
Problem był po stronie serwera ... Miałem rodzajowe obsługi zapisywania tego pliku bez wsparcia nagłówków Range (chyba). Kiedy zmienię swój projekt na "Asp.NET Web Api Project" zainspirowany/skopiowany przez this samouczek
To nie działa wczoraj, ale dzisiaj jego nieoczekiwanie zaczyna działać: D Crazy Nokia i .NET.
Zobaczymy jutro, co stanie się dalej.
Na wszelki wypadek, czy jesteś pewien, że to 0,5 MB, a nie 5 MB? Ponieważ 5 MB to limit transferu w sieci komórkowej –
Tak dokładnie 0,5 MB, znam limit 5 MB i dostosowuję limit rozmiaru rekordu. Kiedy debuguję to widzę w "transferRequest_TransferProgressChanged", że osiągam max. 0,5 MB we właściwości żądania "request.BytesSent" i nie rozumiem dlaczego :). Jutro spróbuję skontaktować się z ewangelistą Nokia lub MS, aby pomóc. – lukasChudy
Limit transferu wynoszący 50 MB w sieci komórkowej, a nie 5 MB. –