Azure MobileServiceInvalidOperation已抛出异常

时间:2015-10-05 17:14:51

标签: c# azure xamarin

我正在使用下载样本以生成Azure移动服务时生成的xamarin.forms应用。我做了一些修改。首先,我已将Todo更改为entry.cs:

public class entry
{
    string id;

    [JsonProperty("ID")]
    public string ID { get; set; }

    [JsonProperty("Time")]
    public int Time { get; set; }

    [JsonProperty("Percentage")]
    public int Percentage { get; set; }

    //I have omitted Device, Replacement, Use_profile, Longitude, Latitude, Battery
}

我尝试在我的SQL数据库中向表中添加一个新行,方法是在cs中从我的页面调用以下代码:

var data = new entry{ Longitude = await GetLongitude(), Latitude = await GetLatitude(), Percentage = bpm }; // initialise new data entry 
await AddItem (data);  

当调用此应用程序时,应用程序崩溃。 抛出异常时,这是日志的gist。它给出Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOpperationException has been thrown

说明:

The resource you are looking for has been removed, had it's name changed, or is temporarily unavailable

这是在ios项目下的main.cs中的UIApplication.Main (args, null, "AppDelegate");行上抛出的。

对于为什么会发生这种情况的任何想法都将非常感激。

更新:

为了添加更多信息,我在http://project.azurewebsites.net设置了一个Web服务,这是我在xamarin中构建的移动应用程序的常量部分中引用的地址。但是,SQL数据库位于http://project-db.database.windows.net我如何解决这个问题?我可以在原始域上创建数据库,还是更改应用程序中的引用?

1 个答案:

答案 0 :(得分:3)

当您呼叫移动后端时,您似乎收到了404错误。您需要添加一个新的表控制器来处理"条目" class,因为您的客户将尝试发布到https://yourservice.azurewebsites.net/tables/entry,但这并不存在。

在您的服务器项目中,您需要添加一个继承自EntityData的新类Entry。然后将此类型添加到DbContext类并添加表控制器。本Mobile Services controllers教程可能会有所帮助。如果您使用的是移动应用,则可以使用添加 - >新的脚手架项目 - > Azure移动应用程序 - >移动应用程序表控制器。

然后,部署您的服务器项目,以便新的REST端点可用,然后您的客户端应用程序应该能够连接。

编辑添加:您在web.config中的MS_TableConnectionString设置中指定连接到SQL数据库。无论Azure门户的连接字符串部分是什么值都将覆盖它。有关详细信息,请参阅https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/