4

我有一个非常简单的 MVC5 Web 应用程序(VS 2013 RC)部署到 Azure 网站。它一直有效,直到我在“发布 Web”对话框中检查了“执行代码优先迁移”。现在,当我访问该站点时,我遇到了内部服务器错误。如果我取消选中“发布 Web”对话框中的“执行代码优先迁移”复选框,则 Web 应用程序将按预期工作。在解决问题的过程中,我从本地计算机直接连接到 Azure 托管的数据库并运行 Enable-Migrations 和 Update-Database 命令,但我不确定这是否有必要。

您知道该复选框的用途是什么以及如何在 Azure 中启用自动代码优先迁移吗?

4

2 回答 2

0

我刚遇到同样的问题。原来是因为我通过 Nuget 将 Entity Framework 添加到类库中,但没有将其添加到 Web 项目中。这在本地有效,但在我发布到 Azure 时导致了您描述的症状。

于 2014-11-22T15:27:14.667 回答
0

上周,当我启用代码优先迁移并重新发布在此之前一直在工作的网站时,我遇到了类似的问题。我观察到的似乎表明了这一点:

如果您选中了该选项,那么当您的站点最初开始运行时,它将运行代码优先迁移。由于我的新创建的表有一些“创建表”,因此它运行了该代码。不幸的是,我已经将 SQL Server 2012 的现有数据库发布到 Azure,并且该表中有数据。因此,代码首次迁移导致它删除该表并重新创建它。

我不是 100% 确定这是发生了什么,但我相信它是。主要是因为当我进入 SQL Server Management Studio 并在 Azure 上查看我的表的数据时,启动站点后它是空的。

为了确认,我重新发布了我的网站并确认数据库表中有数据。跑了这个网站,它就消失了。

所以不可避免地,我只是取消选中该框并重新发布我的网站和数据库。一旦我这样做了,数据就在那里,网站仍然有效。

于 2013-11-11T14:20:19.217 回答