Azure移动服务错误--无法完成请求。()

Azure移动服务错误--无法完成请求。(),azure,xamarin,mvvmcross,azure-mobile-services,Azure,Xamarin,Mvvmcross,Azure Mobile Services,我正在使用Azure移动服务和.net后端,MvvmCross使用基于Xamarin Pcl的解决方案。 当我从Azure Mobile Services提供的默认浏览器界面以交互方式运行该服务时,该服务将返回结果。我也在使用离线数据同步功能。我可以将数据推送到服务器,它可以工作,但现在当我尝试从服务器中提取数据时 {Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException:请求可能失败 未完成。()

我正在使用Azure移动服务和.net后端,MvvmCross使用基于Xamarin Pcl的解决方案。 当我从Azure Mobile Services提供的默认浏览器界面以交互方式运行该服务时,该服务将返回结果。我也在使用离线数据同步功能。我可以将数据推送到服务器,它可以工作,但现在当我尝试从服务器中提取数据时

{Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException:请求可能失败 未完成。()在 Microsoft.WindowsAzure.MobileServices.MobileServiceHttpClient.d_u18.MoveNext() ---来自引发异常的上一个位置的堆栈结束跟踪---在 System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在System.Runtime.CompilerServices.TaskAwaiter.GetResult()上 在 Microsoft.WindowsAzure.MobileServices.MobileServiceHttpClient.d_u1d.MoveNext() ---来自引发异常的上一个位置的堆栈结束跟踪---在 System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在System.Runtime.CompilerServices.TaskAwaiter
1.GetResult()中
在
Microsoft.WindowsAzure.MobileServices.MobileServiceHttpClient.d_u4.MoveNext()
---来自引发异常的上一个位置的堆栈结束跟踪---在
System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务
任务)在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在System.Runtime.CompilerServices.TaskAwaiter中执行
在
Microsoft.WindowsAzure.MobileServices.MobileServiceTable.d_uf.MoveNext()
---来自引发异常的上一个位置的堆栈结束跟踪---在
System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务
任务)在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在System.Runtime.CompilerServices.TaskAwaiter
1.GetResult()中
在
Microsoft.WindowsAzure.MobileServices.MobileServiceTable.d_u7.MoveNext()
---来自引发异常的上一个位置的堆栈结束跟踪---在
System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务
任务)在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在System.Runtime.CompilerServices.TaskAwaiter中执行
在
Microsoft.WindowsAzure.MobileServices.Sync.PullAction.d_u0.MoveNext()
---来自引发异常的上一个位置的堆栈结束跟踪---在
System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务
任务)在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在System.Runtime.CompilerServices.TaskAwaiter.GetResult()上
在
Microsoft.WindowsAzure.MobileServices.Sync.TableAction.d_u0.MoveNext()
---来自引发异常的上一个位置的堆栈结束跟踪---在
System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务
任务)在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在System.Runtime.CompilerServices.TaskAwaiter.GetResult()上
在
Microsoft.WindowsAzure.MobileServices.Sync.MobileServiceSyncContext。
d__3b.移动下一步()
---来自引发异常的上一个位置的堆栈结束跟踪---在
System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务
任务)在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在System.Runtime.CompilerServices.TaskAwaiter.GetResult()上
在
Microsoft.WindowsAzure.MobileServices.Sync.MobileServiceSyncContext.d_u27.MoveNext()
---来自引发异常的上一个位置的堆栈结束跟踪---在
System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务
任务)在
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务
任务)在System.Runtime.CompilerServices.TaskAwaiter.GetResult()上
在
AgLiveMobile.Core.Services.EmployeeService.d_u4.MoveNext()}

我甚至调试了从客户端到服务器的服务,结果出来了,但我不知道为什么会发生这种情况。我正在打开Wifi连接的Windows Phone 8.1设备上进行测试


请提供帮助。

在VS的异常对话框中进一步分析http响应后,实际错误为404未找到。然后进一步调试问题,结果是Azure移动服务的应用程序url应该是https而不是http


如果产品团队能够发现这一点并给出正确的错误消息就好了,这样可以节省大量时间,开发人员也不会感到沮丧。

我也有同样的问题,但我的问题是,UpdateSync试图获取数据库中不存在的项

我已使用SyncHandler和以下catch块解决了此问题:

                catch (Exception ex) when (ex is MobileServiceInvalidOperationException)
                {
                    var error = (MobileServiceInvalidOperationException)ex;

                    if (operation.Kind != MobileServiceTableOperationKind.Update)
                    {
                        continue;
                    }

                    if (error.Response.StatusCode != HttpStatusCode.NotFound)
                    {
                        continue;
                    }

                    var azureMobileBackend = new AzureMobileBackend();

                    var table = await azureMobileBackend.GetSyncTable<...>();
                    await table.PurgeAsync(null, table.Where(x => x == operation.Item.ToObject<...>()), new CancellationToken());
                }
catch(异常ex)(ex为MobileServiceInvalidOperationException)
{
var错误=(MobileServiceInvalidOperationException)ex;
if(operation.Kind!=MobileServiceTableOperationKind.Update)
{
继续;
}
if(error.Response.StatusCode!=HttpStatusCode.NotFound)
{
继续;
}
var azureMobileBackend=新的azureMobileBackend();
var table=await azureMobileBackend.GetSyncTable();
wait table.purgesync(null,table.Where(x=>x==操作