【问题标题】:ASP.NET MVC cannot connect to my local SQL Server databaseASP.NET MVC 无法连接到我的本地 SQL Server 数据库
【发布时间】:2021-02-22 14:00:44
【问题描述】:

我有一个 ASP.NET MVC 应用程序,但我无法连接到我的机器上托管的本地 SQL Server 数据库。

我收到以下错误:

与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:50 - 发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。 )

我最近在原始 SQL Server 安装之上安装了 SQL Server Express;由于发生了这种情况,应用程序现在永远无法连接到数据库。当我通过 Visual Studio 进行调试时,我的应用程序在本地 IIS 和管理员下运行。

我尝试过的事情:

  • 我已尝试删除 Microsoft 文件夹中的本地数据库并重新创建它们
  • 我试过运行“sqllocaldb start”命令,它已经启动了
  • 我已尝试停止 SQL 服务并重新启动它们
  • 我已尝试在有权访问数据库的用户下运行应用程序池
  • 我通过创建数据模型测试了与应用程序的连接,它可以做到
  • 我已尝试将具有完全控制权的所有人组应用到实例文件夹
  • 我已尝试授予对数据库表的公共访问权限
  • 我已尝试删除并重新创建数据库

我在 SQLLocalDB15.0 下的计算机管理中收到以下错误:

在图片文件中找不到指定的资源语言ID。

无法获取本地应用程序数据路径。很可能未加载用户配置文件。如果在 IIS 下执行 LocalDB,请确保为当前用户启用配置文件加载。

我的连接字符串如下:

<add name="Entities" connectionString="metadata=res://*/Models.DataModel.csdl|res://*/Models.DataModel.ssdl|res://*/Models.DataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(localdb)\MSSQLLocalDB;initial catalog=DatabaseName;integrated security=True;persist security info=True;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

我的机器上安装了以下SQL的东西,不知道这里有没有效果:

【问题讨论】:

  • 您要连接到 SQL Express 实例还是 LocalDB 实例?您最初安装的 SQL 是哪个版本?该错误表明您正在尝试连接到与 SQL Express 不同的 LocalDB。
  • 我想连接到我的 LocalDB,我在连接字符串中使用以下内容:Server=(localdb)\MSSQLLocalDB
  • mdf 文件是否附加到服务器? LocalDb 仅适用于 mdf 未连接到服务器的情况。服务器拥有该文件并阻止用户直接连接到 MDF。错误说“不可访问”,这意味着服务器拥有文件并阻止连接。
  • @squillman 已更改但仍有错误
  • @jdweng 如何查看文件是否已附加?

标签: c# asp.net sql-server entity-framework


【解决方案1】:

您必须尝试的第一件事是使用 MS Sql Server Managemen Studio 连接到您的数据库,使用 (localdb)\MSSQLLocalDB 作为服务器名称和 Windows 身份验证。如果它是空的,您可以附加 db 或创建新的。如果它不起作用,您必须尝试使用​​ Sql Studio 搜索工具找到您的 Db。如果找不到,则必须再次安装本地数据库,并且在安装过程中会找到您的数据库名称。在此之后相应地更正您的数据库名称。或者甚至更好地尝试再次从您找到的数据库创建您的 EF。 EF 会自动将正确的连接字符串添加到您的配置文件中。在此之后,您可以更改名称或将其移动到另一个配置文件。

【讨论】:

  • SQL 搜索工具有哪些?
  • 当您在服务器名称下拉列表中启动 Management Studio 时,选择
  • 好的,我可以浏览并连接到 SQL express,但这也显示没有数据库,这台机器上必须有应用程序正在使用的数据库,因为应用程序正在保存数据,我可以使用通过它们创建的帐户登录。
  • 每个 db 都有一个 mdf 文件。如果你找到这个文件,你可以附上它。或者,如果您有备份文件,只需从此文件恢复。或者你将不得不创建一个
  • 所以我有一个数据库并附加了一个文件,但它不适用于我之前提到的问题
【解决方案2】:

通过卸载屏幕截图中的所有 SQL 相关内容并重新安装开发 SQL Server 2019 解决了这个问题,然后我创建了之前拥有的数据库并使用 EntityFramework 中的数据模型连接到它,它工作正常!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多