2017-02-27 56 views
1

我是新來的移動開發,我遇到了我的Xamarin Forms應用程序的問題。我有一個Azure訂閱,其中包含一個連接到我的數據庫的移動應用程序設置。我已經從Azure中的Mobile App Quickstart鏈接下載了兩個快速啓動項目,並將它們重新配置爲在我的數據庫中查找名爲「users」的表並從中返回數據。爲什麼我的Xamarin Forms應用程序看不到我的數據庫表?

當我從使用MacBook Pro作爲模擬器的Visual Studio中運行應用程序時,列表將回到空白狀態。我放了幾個斷點,我可以看到它說明找不到資源。

在查找表返回它擊中捕捉的方法,像這樣的集合:

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." 

我添加了一個響應,並請求漁獲物聲明,試着確切地看問題是什麼。該請求返回以下內容:

{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中的Easy Tables?

我需要一些指導來理解爲什麼我的應用程序無法看到我的數據庫表。

回答

0

除了具有數據庫:你有沒有跟任何易表Azure Mobile Tables自定義Web API項目設置Web API(或Azure的移動應用)?

這是Mobile Client Tables工作所必需的。

快速入門Easy Tables的教程是there

可以在此處找到創建自定義移動應用程序後端的起點(https:// docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-dotnet-backend如何使用服務器sdk)

+0

我有Azure中的移動應用程序設置@woelliJ但是我沒有使用Easy Tables創建我的表,我使用了SQL對象瀏覽器。可悲的是試圖安裝Microsoft.Azure.Server.Mobile.Tables甚至Microsoft.Azure.Mobile.Server.2.0.0拋出從Nuget的錯誤,指出目標框架不適合這些項目。我確實試圖改變它,但它說它不能。我一直在圍繞試圖安裝這些項目的圈子。 – Yanayaya

+0

通過創建數據庫表不會直接暴露出來。 Microsoft.Azure.Server.Mobile.Tables包用於服務器項目。您需要通過某種Web服務(使用Microsoft.Azure.Server.Mobile.Tables)或通過「易用Tabes」公開您的數據庫。 – woelliJ

+0

Ahh對,是的,這就是您從Azure @woelliJ中的示例項目中獲得的結果。所以這個元素已經存在。我做了更多的挖掘,並發現這篇文章http://www.strathweb.com/2012/12/using-existing-database-with-azure-mobile-services/它表明你仍然需要使用EasyTables創建表即使它們存在。我設法做到了這一點,我的應用程序不再陷入困境。我的下一個問題是,儘管這個過程我不能返回任何數據,我用Postman來測試其餘語句,但它什麼都不返回。 – Yanayaya