首页 > 解决方案 > Blazor/Entity Framework 数据库登录失败,突然开始出现?

问题描述

有很多相关问题引用了类似的数据库错误消息,但通常它们与在 SQL Server 中设置数据库的人有关,但并未完全封装在 Blazor/Entity Framework 下。

我一直在构建一个 Blazor Web Assembly 应用程序,它具有三个项目(客户端、模型、服务器)。服务器项目使用实体框架并使用它提供的所有表/记录创建数据库。

自从项目创建以来,连接到数据库一直运行良好,但是在我的机器最近崩溃后,当我重建解决方案并访问应用程序时,服务器开始抛出以下错误:

Microsoft.Data.SqlClient.SqlException (0x80131904):无法打开登录请求的数据库“WhiteGov”。登录失败。
用户“EPIC\twhite”登录失败。

EPIC\twhite是我的 Windows 登录名)

我可以在解决方案的服务器资源管理器中查看并连接到数据库。

我能做些什么来解决“突然”/“自发”出现的任何问题。我没有更改 ConnectionString(如下)。

{
    "ConnectionStrings": {
        "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=WhiteGov;Trusted_Connection=True;"
    },
    "Logging": {
        "LogLevel": {
            "Default": "Information",
            "Microsoft": "Warning",
            "Microsoft.Hosting.Lifetime": "Information"
        }
    },
    "AllowedHosts": "*"
}

这是更多错误:

在 Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) 在 Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 重试, DbConnectionOptions userOptions , DbConnectionInternal& 连接) 在 Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory,TaskCompletionSource`1 重试,DbConnectionOptions userOptions) 在 Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 重试, DbConnectionOptions userOptions) 在 Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) 在Microsoft.Data.SqlClient.SqlConnection.OpenAsync(CancellationToken cancelToken)OpenAsync(CancellationToken cancelToken)OpenAsync(CancellationToken cancelToken)

在此处输入图像描述

标签: sql-serverentity-frameworkentity-framework-corelocaldb

解决方案


您在服务器资源管理器中显示的不是您的 Localdb 实例,而可能是 SQL Server Express 用户实例连接。在服务器资源管理器中连接到(localdb)\mssqllocaldb,并验证它是否包含名为“WhiteGov”的数据库 - 如果不是这种情况,那么您可以附加 WhiteGov.mdf 文件,一切都会开始为您工作。


推荐阅读