UWP BackgroundDownloader().CreateDownload() или CreateStreamedFileFromUriAsync(), когда устройство не подключено к сети
В моих приложениях я должен получить какой-то файл на локальном веб-сервере из REST uri, например http://localhost:8080/getfile/myfile_ID", а затем скопировать их в localStorage приложения, чтобы я продолжал так:
StorageFolder fileFolder = await ApplicationData.Current.LocalFolder.GetFolderAsync("MyFiles");
StorageFile file =await fileFolder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
var download = new BackgroundDownloader().CreateDownload(source, file);
await download.StartAsync();
или вот так:
StorageFile file = await StorageFile.CreateStreamedFileFromUriAsync(filename, source, RandomAccessStreamReference.CreateFromUri(source));
Это работает нормально на любом устройстве, расположенном в сети, на устройствах, которые получили IP, но когда устройство не подключено к какой-либо сети (не подключен к RJ45 или не подключен к какому-либо Wifi), код застрял на этих линиях без каких-либо ошибок. В отладке я вижу, что программа просто ждет завершения асинхронного метода, но этого не произошло. Если во время отладки я снова подключаю RJ45 или подключаюсь к Wi-Fi, асинхронный метод теперь заканчивается и работает нормально.
Это нормальное поведение? Я понимаю, что для получения файла с URI устройство должно быть подключено к сети, но как насчет локального URI?