Xamarin.ios Azure移动服务脱机同步

Xamarin.ios Azure移动服务脱机同步,xamarin.ios,azure-mobile-services,Xamarin.ios,Azure Mobile Services,我正在尝试从Xamarin.iOS应用程序进行脱机同步。当我在IMobileServiceSyncTable上调用PullAsync时,调用永远不会返回 [Fact] public async Task GetAllAsync_ReturnsData() { var result = await sut.GetAllAsync(); Assert.NotNull(result); } 我试过使用一个普通的IMobileServiceTable,它似乎工作得很好。同步表似乎是这里

我正在尝试从Xamarin.iOS应用程序进行脱机同步。当我在IMobileServiceSyncTable上调用PullAsync时,调用永远不会返回

[Fact]
public async Task GetAllAsync_ReturnsData()
{
    var result = await sut.GetAllAsync();
    Assert.NotNull(result);
}
我试过使用一个普通的IMobileServiceTable,它似乎工作得很好。同步表似乎是这里不适合我的东西

不起作用的代码:

var client = new MobileServiceClient(ApiUrl);

var store = new MobileServiceSQLiteStore("syncstore.db");
store.DefineTable<Entity>();

await client.SyncContext.InitializeAsync(store);
table = client.GetSyncTable<Entity>();
try
{
    await table.PullAsync("all", table.CreateQuery());
}
catch (Exception e)
{
    Debug.WriteLine(e.StackTrace);
}

return await table.ToListAsync();
有人能指出什么似乎是错的吗?我没有得到任何例外,也没有任何东西指向我的任何方向——它只是永远不会完成

更新1: 看到了其他一些SO问题,其中人们遇到了类似的问题,因为他们在调用堆栈中的某个位置没有等待,而是执行了Task.Result或Task.Wait()。然而,我在整个链条中都在等待这个电话。例如,我编写了一个单元测试,其行为与上面描述的完全相同。挂起,再也不会回来

[Fact]
public async Task GetAllAsync_ReturnsData()
{
    var result = await sut.GetAllAsync();
    Assert.NotNull(result);
}
更新2:
我一直在嗅探单元测试发送的请求。它似乎挂起了,因为它不断地多次执行http请求,并且从未退出该操作。

最后!我发现了问题所在

问题是服务器在GetAll操作中返回了IEnumerable。相反,它应该是一个易货的

这个问题的答案为我指明了正确的方向