我有问题(实际上不止一个问题),我正在开发使用BackgroundTransferService传输录制的wav文件的Windows Phone 8应用程序,在HTC 8S上工作得几乎正常,但在Nokia Lumia 920上似乎存在奇怪的行为,它具有一些无法理解的上传限制,恰好为0.5MB,即512KB,在WiFi下似乎工作正常,但是在通过移动网络时出现问题。
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);
当我的TotalBytesSent达到512KB时,它停止上传。
我也检查了这个问题。
var tmp = NetworkInformation.GetInternetConnectionProfile();
var cost = tmp.GetConnectionCost();
var type = cost.NetworkCostType;
一切似乎都很好。
编辑:
服务器端的收入仅为380000字节 +/-5 KB。
有时,在10次失败的尝试后(只发送380KB等),它突然上传成功:D。有时候我不在办公室,第一次就能完美地工作,而另一次则永远无法发送它。
这是完全不可预测的事情。
解决方法:
问题出在服务器端...我有一个通用处理程序来保存这个文件,没有支持范围头(我想)。当我将我的项目更改为“Asp.NET Web Api项目”,受到此教程的灵感/复制时。
昨天它没有起作用,但今天它意外地开始工作了:D 疯狂的诺基亚和.NET。
明天我们会看看接下来会发生什么。