我是新來的移動開發,我遇到了我的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?
我需要一些指導來理解爲什麼我的應用程序無法看到我的數據庫表。
我有Azure中的移動應用程序設置@woelliJ但是我沒有使用Easy Tables創建我的表,我使用了SQL對象瀏覽器。可悲的是試圖安裝Microsoft.Azure.Server.Mobile.Tables甚至Microsoft.Azure.Mobile.Server.2.0.0拋出從Nuget的錯誤,指出目標框架不適合這些項目。我確實試圖改變它,但它說它不能。我一直在圍繞試圖安裝這些項目的圈子。 – Yanayaya
通過創建數據庫表不會直接暴露出來。 Microsoft.Azure.Server.Mobile.Tables包用於服務器項目。您需要通過某種Web服務(使用Microsoft.Azure.Server.Mobile.Tables)或通過「易用Tabes」公開您的數據庫。 – woelliJ
Ahh對,是的,這就是您從Azure @woelliJ中的示例項目中獲得的結果。所以這個元素已經存在。我做了更多的挖掘,並發現這篇文章http://www.strathweb.com/2012/12/using-existing-database-with-azure-mobile-services/它表明你仍然需要使用EasyTables創建表即使它們存在。我設法做到了這一點,我的應用程序不再陷入困境。我的下一個問題是,儘管這個過程我不能返回任何數據,我用Postman來測試其餘語句,但它什麼都不返回。 – Yanayaya