我在 SkyDrive 下载过程中遇到了一些问题,希望您能帮助我。
按照标准的 SkyDrive API 和示例,我设置了一个浏览 SkyDrive 文件夹结构的页面,让用户单击文件,提示下载,一切正常。
我遇到问题的地方是当下载的文件很大时,我会在 100Mb 标记附近抛出 OutOfMemoryException。
丹尼斯在这里谈到了这个问题http://dotnet.dzone.com/articles/2-things-you-should-consider但它与直接 URL 下载有关,而不是通过 SkyDrive 架构。
我尝试从 SkyDrive 中提取 URL 并以这种方式直接下载,但没有任何成功。
这是我正在使用的代码 - “项目”对象是 SkyDriveItem 类型,已遍历文件夹内容并选择了此文件。
LiveConnectClient downloadClient = new LiveConnectClient(App.Session);
try
{
downloadClient.DownloadCompleted += new EventHandler<LiveDownloadCompletedEventArgs>(downloadClient_DownloadCompleted);
downloadClient.DownloadProgressChanged += new EventHandler<LiveDownloadProgressChangedEventArgs>(downloadClient_DownloadProgressChanged);
downloadClient.DownloadAsync(item.ID + "/content", item);
当文件不是太大时,这将正常工作,但如前所述,选择一个大文件 (>100Mb) 并因 OutOfMemory 异常而死。
任何指针?
提前致谢