"ConnectionString属性尚未初始化." - 但仅限于发布时

Ale*_*lex 2 asp.net-mvc entity-framework asp.net-mvc-5 entity-framework-6.1

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

但是,当我使用Azure SQL数据库将其发布到Azure网站时,在进行任何数据库交互时出现以下错误:

The ConnectionString property has not been initialized.

我已经搜遍了全部,无法找到Azure上发生这种情况的原因.

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

包含以下内容:

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

    }
}
Run Code Online (Sandbox Code Playgroud)

当我发布到Azure时,我已经测试了连接字符串(返回OK),这是"设置"屏幕:

在此输入图像描述

想知道发生了什么事吗?

更新:

如果不选择ApplicationDbContext而是选择DefaultConnection它可行,但是我将无法使用代码优先迁移.我怎样才能ApplicationDBContext再次上班?

在此输入图像描述

Ale*_*lex 20

对于遇到这个问题的其他人 - 我找到了解决方案.

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

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

ASP Identity 1.0.0

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

}
Run Code Online (Sandbox Code Playgroud)

ASP Identity 2.0.0

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

}
Run Code Online (Sandbox Code Playgroud)

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