File upload 从Windows Phone 8将大文件上载到SkyDrive文件夹

File upload 从Windows Phone 8将大文件上载到SkyDrive文件夹,file-upload,windows-phone-8,windows-phone,live,onedrive,File Upload,Windows Phone 8,Windows Phone,Live,Onedrive,我正在尝试从Windows Phone 8设备将大文件上载到SkyDrive。 为了避免OurOfMemory异常,我必须使用AllowWriteStreamBuffering=false手动(不带SDK)将文件字节写入请求流 var putUrl = string.Format("https://apis.live.net/v5.0/{0}/files/{1}?suppress_response_codes=true&suppress_redirects=true&overwr

我正在尝试从Windows Phone 8设备将大文件上载到SkyDrive。 为了避免OurOfMemory异常,我必须使用AllowWriteStreamBuffering=false手动(不带SDK)将文件字节写入请求流

var putUrl = string.Format("https://apis.live.net/v5.0/{0}/files/{1}?suppress_response_codes=true&suppress_redirects=true&overwrite=true&access_token={2}", _folderId, fileName, _session.AccessToken);
var webRequest = (HttpWebRequest) WebRequest.Create(putUrl);
webRequest.ContentType = string.Empty;//Empty is required for PUT method.
webRequest.Method = "PUT";
webRequest.AllowWriteStreamBuffering = false;
webRequest.ContentLength = fileStream.Length;
webRequest.BeginGetRequestStream(iar =>
{
    using (var requestStream = webRequest.EndGetRequestStream(iar))
    {
        var buffer = new byte[1024*100];
        var read = 0;
        while ((read = fileStream.Read(buffer, 0, buffer.Length)) <= buffer.Length)
        {
            requestStream.Write(buffer, 0, read); //!!!IT HANGS HERE WITHOUT ANY ERROR!!!
            if (read < buffer.Length)
                break;
        }
    }
}, webRequest);
var putUrl=string.Format(“https://apis.live.net/v5.0/{0}/files/{1}?suppress_response_code=true&suppress_redirects=true&overwrite=true&access_token={2}“,_folderId,fileName,_session.AccessToken);
var webRequest=(HttpWebRequest)webRequest.Create(putUrl);
webRequest.ContentType=string.Empty//PUT方法需要为空。
webRequest.Method=“PUT”;
webRequest.AllowWriteStreamBuffering=false;
webRequest.ContentLength=fileStream.Length;
webRequest.BeginGetRequestStream(iar=>
{
使用(var requestStream=webRequest.EndGetRequestStream(iar))
{
var buffer=新字节[1024*100];
var read=0;

当((read=fileStream.read(buffer,0,buffer.Length))您尝试使用什么类型的连接下载文件时?2G/3G/4G/Wifi/Ethernet(USB连接)?这在wifi中也不起作用?你调查过吗?@docrom对所有连接类型都有相同的行为:2g/3g/4g/wifi。只是停留在不同的百分比上。@NeilTurner是的,有一个下限在我的系统中不起作用case@DreamTeam手机:我们面临同样的问题,你解决了吗?