繁体   English   中英

将ASP.NET MVC 5网站发布到Windows Azure

[英]Publish ASP.NET MVC 5 website to Windows Azure

我最近通过asp.net MVC应用程序更改为使用MVC5。它也使用实体框架6。

过去,我已经多次发布到Azure网站,但是从来没有使用两个代码优先的迁移配置。 我认为这是我的问题,但我不知道如何解决。

我有两个DbContext类。 一个用于我的域模型,另一个用于身份模型。 在我的本地开发机器上,这没有引起我任何问题。 由于我的许多控制器都需要[Authorize]属性,因此我在Identity配置类中也有一个种子方法来创建一个初始用户登录。

我有两个迁移配置类,每个上下文一个。 我创建了一个新的Windows Azure网站,并将SQL数据库链接到该网站。

我已经下载了用于发布网站的发布配置文件。 我在“发布Web”对话框的“设置”选项卡上看到了两个上下文。 我从每个上下文的可用列表中选择了适当的数据库,选择在运行时使用连接字符串,并对两个上下文启用了“执行代码优先迁移”。

当我最终发布该网站时,一切似乎进展顺利。 我通过与站点的FTP连接看到文件,然后站点启动。

但是,当我尝试登录时,出现错误提示

The ConnectionString property has not been initialized.

单击“帐户/登录”视图上的“登录”按钮后。

当我检查表使用SSMS时,看到没有在SQL中创建表。

我可以看到我的web.config文件已更新。 原始连接字符串已更改为指向azure数据库。 添加了其他三个连接字符串。 对于已附加_DatabasePublish的域上下文,还有一个用于身份上下文的上下文,另外两个具有_DatabasePublish后缀。

谁能看到我可能在做错什么。 我以前曾将Azure与该解决方案一起使用过,没有任何问题。 请说是否需要其他代码片段。

非常感谢。

编辑...

我发现了另一条建议以下内容的帖子:

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
    {
    }

}

试试看,让我知道你过得如何。

这对我有用。

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
    {
    }

}

与Azure和身份SDK的更新有关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM