【问题标题】:Publish ASP.NET MVC 5 website to Windows Azure将 ASP.NET MVC 5 网站发布到 Windows Azure
【发布时间】: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


【解决方案1】:

这对我有用。

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 更新有关。

【讨论】:

  • sweet - 也为我工作..数据发布的东西仍在 webconfig 中,但不,我不再遇到异常。至少我不再需要在每次发布时手动编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 2012-05-08
相关资源
最近更新 更多