2017-02-09 108 views
0

我正在尝试构建一个新的移动应用程序的Web服务/后端,以构建Xamarin Forms和Azure服务。我一直在关注这个tutorial为Azure移动应用程序部署数据库失败

一切都很好,直到我到“将项目部署到Azure应用服务”部分,我有2个相关的问题。我用我自己的DataObjects和用作为例子给出的标准“ToDoList”应用程序得到了同样的问题。

  1. 当我第一次发布时,我在发布向导的“设置”选项卡上选择“更新数据库”,以便将新的数据对象/架构推送到我的新数据库。然后,我点击发布,然后我收到一个错误,回复说System.Data.SqlClient.SqlException (0x80131904): Cannot attach the file '{LocalFilePath}\App_Data\{databaseName}.mdf' as database '{databaseName}'.我注意到在指定的“App_Data”文件夹中没有任何内容,在发布到应用服务之前需要做些什么来构建.mdf文件?
  2. 发生此错误后,我尝试重新发布数据库,并且“发布向导”有两个不同之处。首先,我不再拥有“更新数据库”选项,我只有“设置”选项卡上的“执行代码优先迁移”选项,并且它变灰。其次,“预览”选项卡显示“没有数据库被选中发布”

我试图通过App Service以三种不同方式发布数据库,并且它们每个都给了我上面描述的完全相同的场景,所以我想我只是缺少一些显而易见的东西,因为我不熟悉Azure和移动应用程序开发。

  1. 通过Azure门户创建移动应用程序后台+服务+数据库,然后从Azure门户部署“快速入门”项目。
  2. 遵循类似于上面的教程,但专门用于发布默认情况下插入的ToDoList数据库模式。这是tutorial我跟着
  3. 按照上面的教程,但利用我自己的自定义DataObjects,而不是本教程中描述的。

我已经阅读了关于如何让“Execute Code First Migrations”可用的方法,但我还没有发现任何实际上允许我部署数据库的东西,因为它一直说“No数据库被选择发布“,并且我无法获得”更新数据库“选项,以便在初始失败后显示。有什么明显的我失踪了?

回答

0

当我去第一时间公布,我选择“更新数据库”,在“设置”选项卡上的,以便通过推我的新数据对象/模式到我的新的数据库发布向导。然后,我点击发布,然后收到一条错误消息:System.Data.SqlClient.SqlException(0x80131904):无法将文件“{LocalFilePath} \ App_Data {databaseName} .mdf”附加为数据库“{databaseName}”。我注意到在指定的“App_Data”文件夹中没有任何内容,在发布到应用服务之前需要做些什么来构建.mdf文件?

官方document在发布网站向导提及更新数据库如下:

您选择了发布Web向导标记更新数据库的复选框。此复选框显示应用程序访问的SQL Server数据库,而不使用实体框架代码优先上下文类。

如果您在部署应用之前,不会创建您的源本地数据库,你会得到错误如下:

有关详细信息,你可以参考dbDacFx网站部署此document中的供应商部分。

发生此错误后,我尝试重新发布数据库,并且发布向导有2个区别。首先,我不再拥有“更新数据库”选项,我只有“设置”选项卡上的“执行代码优先迁移”选项,并且它是灰显的。其次,预览标签说:“没有数据库选择发布”

执行代码首先迁移(在应用程序启动运行)显示该应用程序访问通过使用实体框架代码优先上下文类数据库。

当您选择此选项,使代码首先使用MigrateDatabaseToLatestVersion初始化类的部署过程中自动配置目标服务器上的应用程序Web.config文件。

如果在程序包管理器控制台中运行Enable-Migrations命令,则可以选中此复选框。有关更多详细信息,请参阅此document中的实体框架代码优先迁移部分。

对于一种简单的方法,您可以利用Azure门户中的“QuickStart”项目通过EF代码首先迁移您的db。当部署你的项目,在VS发布Web向导目标数据库(如天青DB)“设置>数据库”下的ConnectionString更新本地的ConnectionString如下:

+0

非常感谢您的建议,我当我回家时会给他们一个尝试! –

+0

你解决了这个问题吗,有没有更新? –

+0

嗨布鲁斯,是的,我们能够弄清楚如何部署数据库。我仍然在处理种子数据上的一些错误(因为我将一个对象列表附加到另一个对象上,我收到了一些外键问题) - 但是感谢您的信息,它能够帮助我获得数据库部署! –

相关问题