我正在尝试将一个简单的 .cer 文件上传到 SkyDrive。不管LiveConnectClient-Method
我用了,没有任何反应。没有编译、运行时或其他异常,我的应用程序从未收到LiveOperationResult
。我正在使用模拟器,并且可以登录 MS Live(因此我的互联网连接良好)。以下是所使用代码的摘录:
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
or BackgroundUploadAsync
方法被使用。
BackgroundUploadAsync 使用Windows Phone 后台文件传输 http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202955%28v=vs.105%29.aspx这是一个智能文件上传下载调度系统。而 UploadAsync 使用即时 HTTP 文件上传和下载。
使用后台文件传输即表示您同意以下上传限制:
最大上传文件大小
通过蜂窝连接 - 5 MB
通过 Wi-Fi 连接,使用电池供电 - 20 MB
通过 Wi-Fi 连接和外部电源 - 100 MB
队列上传和下载的最大数量以及其他限制也有限制。阅读完整文档@http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202955(v=vs.105).aspx http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202955(v=vs.105).aspx
所有这些限制可能会导致您异步等待等待。尽管这是一种痛苦,但后台文件传输所设定的限制可以带来最佳的用户体验(即应用程序关闭时的上传)、最佳的电池寿命和最佳的蜂窝数据使用。最终,由您的应用程序决定是否要使用直接 WebRequests (uploadAsync) 还是后台文件传输 (BackgroundUploadAsync)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)