【发布时间】:2014-05-12 20:12:16
【问题描述】:
我最近通过 asp.net MVC 应用程序更改为使用 MVC 5。它还使用实体框架 6。
我过去曾多次发布到 Azure 网站,但从未使用两次代码优先迁移配置。我认为这是我的问题,但我不知道如何解决。
我有两个 DbContext 类。一个用于我的域模型,另一个用于身份模型。在我的本地开发机器上,这没有给我带来任何问题。我在 Identity 配置类中还有一个种子方法来创建初始用户登录,因为我的许多控制器都需要 [Authorize] 属性。
我有两个迁移配置类,每个上下文一个。我创建了一个新的 Windows Azure 网站并将一个 SQL 数据库链接到它。
我已经下载了我用来发布我的网站的发布配置文件。我在 Publish Web 对话框的设置选项卡上看到了这两种上下文。我从每个上下文可用的列表中选择了适当的数据库,选择在运行时使用连接字符串,并为两个上下文启用了执行代码优先迁移。
当我最终发布网站时,一切似乎都很顺利。我通过与该站点的 FTP 连接看到这些文件,并且该站点出现了。
但是,当我尝试登录时,我收到一条错误提示
The ConnectionString property has not been initialized.
点击帐户/登录视图上的登录按钮后。
当我使用 SSMS 检查表时,我发现在 SQL 中没有创建任何表。
我可以看到我的 web.config 文件已更新。原始连接字符串已更改为指向 azure 数据库。添加了其他三个连接字符串。另外一个用于已附加 _DatabasePublish 的域上下文,另外两个用于用于 Identity 上下文的上下文,一个有一个没有 _DatabasePublish 后缀。
谁能看到我可能做错了什么。我之前使用过 Azure 和这个解决方案,没有任何问题。如果您需要任何其他代码sn-ps,请说。
非常感谢。
编辑...
我发现另一个帖子建议如下:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("SalonContext", throwIfV1Schema: false) // throwIfV1Schema:false was added as the Identity V2 was causing an error in Azure
{
}
}
试一试,告诉我你的进展如何。
【问题讨论】:
-
我遇到了完全相同的问题,每次部署后都必须手动修改我的 web.config。我还没找到解决办法。
-
我刚刚编辑了我的帖子。
标签: asp.net-mvc entity-framework ef-code-first azure-sql-database azure-web-app-service