【发布时间】:2016-02-23 16:53:55
【问题描述】:
我目前正在努力让 Azure > 应用服务 > 移动应用 > 离线同步运行。 在我目前的实验中,我试图严格按照说明进行操作。
所以我做了如下:
迭代 1
- 在 Azure 上定义了一个应用服务(使用新数据库等)
- 下载快速入门 C# 后端 VS 解决方案
- 下载快速入门 Xamarin.Forms 应用程序
- 将 Xamarin.Forms PCL 和 Droid 项目集成到第一个解决方案中
=> 测试:TodoList 应用程序按预期工作。酷!
迭代 2
- 在项目属性的“条件编译符号”中添加了 OFFLINE_SYNC_ENABLED
- 在我的 Nexus 5 (Android 6.0 - API 23) 上再次运行该应用
=> 拉异步被调用...但没有任何反应。所以我存储在 Azure DB 中的 todoItems 不会出现。
我发现的唯一或多或少有趣的日志是这一行: 02-23 09:39:55.280 I/mono-stdout(25706):同步操作无效:请求无法完成。 (错误请求)
我无法通过 fiddler 识别任何流量。
对我来说,好像 azure 上的模板不起作用...
我做错了吗?你有什么建议吗?
非常感谢!
其他事实:
现在我在日志流中发现了一些有趣的东西:
https://offlinecheck1.azurewebsites.net/tables/TodoItem?$filter=(__updatedAt ge datetimeoffset'1970-01-01T00:00:00.0000000%2B00:00')&$orderby=__updatedAt&$skip=0&$top=50&__includeDeleted=true&__systemproperties=__updatedAt%2C__version% 2C__已删除
此请求不适用于 PostMan 埃瑟。
如果我通过在 __updatedAt 的前 2 次出现之前删除“__”来操纵这个 url,我会收到预期的记录。
构造url的组件有问题吗?
【问题讨论】:
-
你引用的是什么版本的 SQLite 存储?
-
SQLitePCL 和 SQLitePCL.Ext 的 3.8.7.2。感谢您的宝贵时间。
-
既然是一个错误的请求,服务器实际上是在收到一个请求。打开诊断并查看跟踪是个好主意。您可以通过Visual Studio Debugging 或Azure Portal 进行此操作
-
在 azure Stream Log 上,我发现这个请求以 400 结尾:GET offlinecheck1:80/tables/… 消息是:由于语法错误,服务器无法理解请求。我对域感到惊讶......或者它可能与 ZUMO-API-VERSION 标头有关?
-
我应该更清楚一点,我想知道您使用的是哪个版本的 Mobile SDK SQLite 商店。你指的是这个吗? nuget.org/packages/Microsoft.Azure.Mobile.Client.SQLiteStore
标签: sqlite azure xamarin azure-mobile-services