В момента се опитвам да кача файлове от сървър, използвайки уеб услуги в преносимата библиотека. За всеки файл правя това:
WebRequest request = WebRequest.Create("http://localhost:49364/" + url);
request.BeginGetResponse((aResult) =>
{
var retour = aResult.AsyncState as WebRequest;
WebResponse reponse = retour.EndGetResponse(aResult);
callback(reponse);
}, request);
В моя метод за обратно извикване правя това:
byte[] bytes;
string currentFileName = fileName;
string categorie = currentFileName.Split('/').ElementAt(0);
string dir = currentFileName.Split('/').ElementAt(1);
using (var reader = new BinaryReader(reponse2.GetResponseStream()))
{
bytes = new byte[reponse2.ContentLength];
reader.Read(bytes, 0, (int)reponse2.ContentLength);
}
fileService.EnsureFolderExists(categorie);
fileService.EnsureFolderExists(fileService.PathCombine(categorie, dir));
fileService.WriteFile(currentFileName, bytes);
Получавам целия файл като масив от байтове. Но с winRT записването на файла спира бързо и локалният ми файл не е пълен. Ако се опитам да кача само един файл, записът също спира. Но ако опитам със Silverlight (разширих MvvmCross до Silverlight), писането е завършено. Все още не съм тествал за MonoDroid et MonoTouch.
И така, въпросът ми е: защо писането спира?