为什么我的Xamarin Forms应用程序看不到我的数据库表?

时间:2017-02-27 11:34:58

标签: c# database azure xamarin

我是移动开发的新手,我的Xamarin Forms应用程序出现问题。我有一个Azure订阅,其移动应用程序设置与我的数据库连接。我已从Azure中的Mobile App Quickstart链接下载了两个快速入门项目,并重新配置它们以查找名为" users"在我的数据库中并从中返回数据。

当我从使用MacBook pro作为模拟器的Visual Studio运行应用程序时,列表返回为空白。我提出了几个断点,我可以看到它说明资源无法找到。

当它查找表以返回一个集合时,它会触及方法中的catch,如下所示:

public async Task<ObservableCollection<users>> GetUserItemsAsync(bool syncItems = false)
        {
            try
            {
#if OFFLINE_SYNC_ENABLED
                if (syncItems)
                {
                    await this.SyncAsync();
                }
#endif
                IEnumerable<users> items = await userTable.ToEnumerableAsync();

                return new ObservableCollection<users>(items);
            }
            //Hits this catch
            catch (MobileServiceInvalidOperationException msioe)
            {
                Debug.WriteLine(@"Invalid sync operation: {0}", msioe.Message, msioe.StackTrace, msioe.Request, msioe.Response);
            }
            catch (Exception e)
            {
                Debug.WriteLine(@"Sync error: {0}", e.Message);
            }
            return null;
        }

返回的错误如下:

"The resource you are looking for has been removed, had its name changed, or is temporarily unavailable."

我在catch语句中添加了一个响应和请求,试图确切地看到问题是什么。该请求返回以下内容:

{Method: GET, RequestUri: 'https://myurl.azurewebsites.net/tables/users', Version: 1.1, Content: <null>, Headers:
{
X-ZUMO-FEATURES: TT
X-ZUMO-INSTALLATION-ID: r8fv3f71-12e9-416f-a976-8are363cf3b7
Accept: application/json
User-Agent: ZUMO/3.1 (lang=Managed; os=iOS; os_version=10.2; arch=MacOSX; version=3.1.50105.0)
X-ZUMO-VERSION: ZUMO/3.1 (lang=Managed; os=iOS; os_version=10.2; arch=MacOSX; version=3.1.50105.0)
ZUMO-API-VERSION: 2.0.0
}}

我可以看到它认为表格不在那里或者它是空的。我创建了表格并用虚拟数据填充它,所以我知道它在那里。

也许我的过程是错误的,我从Visual Studio中创建了与我的azure订阅相关联的表。表需要以某种方式设置吗?我应该在Azure中使用Easy Tables吗?

我需要一些指导,以了解为什么我的应用无法看到我的数据库表。

1 个答案:

答案 0 :(得分:0)

除了拥有数据库之外:您是否使用 Easy Tables 或带有Azure Mobile Tables的自定义Web API项目设置了Web API(或Azure移动应用程序)?

这是移动客户端表工作所必需的。

Easy Table入门的快速教程是there

可以在那里找到创建自定义移动应用后端的起点(https:// docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-dotnet-backend-如何使用的服务器-SDK)