現在、ポータブル ライブラリの Web サービスを使用してサーバーからファイルをアップロードしようとしています。ファイルごとに、次のようにします。
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 を使用すると、ファイルの書き込みがすぐに停止し、ローカル ファイルが完成しません。ファイルを 1 つだけアップロードしようとすると、書き込みも停止します。しかし、Silverlight で試してみると (MvvmCross を Silverlight に拡張しました)、書き込みは完了です。MonoDroid と MonoTouch はまだテストしていません。
だから、私の質問は:なぜ書き込みが停止するのですか?