2

我有一个使用 LocalDb 在我的开发机器上完美运行的 MVC5 / EF6.1 网站。

但是,当我将其发布到带有 Azure SQL 数据库的 Azure 网站时,在进行任何数据库交互时都会收到以下错误:

The ConnectionString property has not been initialized.

我已经搜索了所有内容,但找不到在 Azure 上发生这种情况的原因。

堆栈跟踪指向的第一个文件是IdentityModels.cs:45

其中包含以下内容:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext() : base("DefaultConnection")
    {

    }
}

当我发布到 Azure 时,我测试了连接字符串(恢复正常),这是设置屏幕:

在此处输入图像描述

关于发生了什么的任何想法?

更新:

如果不选择ApplicationDbContext而是选择DefaultConnection它可以工作,但是我将无法使用代码优先迁移。我怎样才能ApplicationDBContext让它再次工作?

在此处输入图像描述

4

2 回答 2

20

对于遇到此问题的其他任何人-我找到了解决方案。

我刚刚通过 Nuget 将ASP Identity升级到 2.0.0 版,当它安装Microsoft.AspNet.Identity.EntityFramework包时,它更改了我的发布设置并将 和 分开AppliationDbContextDefaultConnectionString这就是导致问题的原因。

我所要做的就是将以下内容更改为我的ApplicationDbContext

ASP 身份 1.0.0

public ApplicationDbContext() : base("DefaultConnection")
{

}

ASP 身份 2.0.0

// Set the throwIfV1Schema to false...
public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false)
{

}

我不知道为什么这不会影响我的本地开发版本,但它解决了我的问题。希望这对某人有帮助!

于 2014-04-16T05:28:19.803 回答
-1

我只是取消单击“执行代码首先迁移”它工作。

于 2016-07-26T07:23:40.130 回答