我有一个非常简单的MVC5网络应用程序(VS 2013 RC)部署到Azure网站。直到我检查了“发布Web”对话框中的“执行代码优先迁移”,它一直有效。现在,当我点击网站时,我收到内部服务器错误。如果取消选中“发布Web”对话框中的“执行代码优先迁移”复选框,则Web应用程序将按预期工作。在解决问题的过程中,我从本地计算机直接连接到Azure托管的数据库并运行Enable-Migrations和Update-Database命令,但我不确定是否有必要。
您知道该复选框的用途是什么以及如何在Azure中启用自动代码首次迁移?
答案 0 :(得分:0)
上周,当我启用代码优先迁移并重新发布之前一直在工作的网站时,我遇到了类似的问题。我观察到的似乎是为了表明这一点:
如果您已选中该选项,则当您的网站最初开始运行时,它将运行代码优先迁移。由于我的新创建的表有一些“创建表”,它运行该代码。不幸的是,我已经使用SQL Server 2012发布了一个现有的数据库,直到Azure,并且该表中包含数据。因此,代码首次迁移导致它删除该表并重新创建它。
我不是百分之百确定这是发生了什么,但我相信它是。主要是因为当我进入SQL Server Management Studio并在Azure上查看我的表的数据时,它在启动站点后是空的。
为了确认,我重新发布了我的网站,并确认数据库表中有数据。跑到现场,它消失了。
所以不可避免地,我只是取消选中该框并重新发布我的网站和数据库。一旦我这样做,数据就在那里,网站仍然有用。
答案 1 :(得分:0)
我刚才遇到了同样的问题。事实证明,这是因为我通过Nuget将Entity Framework添加到类库中,但未将其添加到Web项目中。这在本地工作,但是在我发布到Azure时会引起您描述的症状。