Xamarin.ios Azure移动服务脱机同步
我正在尝试从Xamarin.iOS应用程序进行脱机同步。当我在IMobileServiceSyncTable上调用PullAsync时,调用永远不会返回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,它似乎工作得很好。同步表似乎是这里
[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。相反,它应该是一个易货的 这个问题的答案为我指明了正确的方向