我正在尝试将一个简单的.cer文件上传到SkyDrive。不管我使用的LiveConnectClient-Method是什么,都不会发生任何事情。没有编译、运行时或其他异常,我的应用程序从未接收到LiveOperationResult。我正在使用模拟器,我可以登录到MS (所以我的互联网连接很好)。下面是使用的代码的摘录:
using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
{
using(var fileStream = store.OpenFile(certPath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
try
{
client = new LiveConnectClient(session);
//LiveOperationResult operationResult = await client.UploadAsync("me/skydrive", certPath, fileStream, OverwriteOption.Overwrite, new System.Threading.CancellationToken(false), null);
LiveOperationResult res= await client.BackgroundUploadAsync("me/skydrive",
new Uri("/shared/transfers/cert.cer", UriKind.Relative),
OverwriteOption.Overwrite);
linkTextBlock.Text = "Done";如前所述,TextBlock从不显示“已完成”。如果使用UploadAsync或BackgroundUploadAsync方法,则没有任何区别。
发布于 2013-01-24 00:00:23
BackgroundUploadAsync使用的是智能文件上传下载调度系统Windows后台文件传输。而UploadAsync使用即时HTTP文件上传和下载。
通过使用背景文件传输,您将同意上传以下限制:
最大上传文件大小 通过蜂窝连接-5 MB 通过with连接电池电源- 20 MB 通过with连接外部电源- 100 MB
对队列的最大上传数量也有限制&下载和其他限制。阅读完整的文档@ http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202955(v=vs.105).aspx
所有这些限制都可能导致异步等待等待。尽管背景文件传输所规定的限制带来了最好的用户体验(即,当应用程序关闭时的上行)、最好的电池寿命和最佳的蜂窝数据使用,但这还是很痛苦的。最终,这取决于你的应用程序是想直接使用WebRequests (uploadAsync)还是后台文件传输(BackgroundUploadAsync)。
https://stackoverflow.com/questions/14482876
复制相似问题