指定的LocalDb实例不存在



我已经使用名为"Projects"的localDB一段时间了。这与默认ASP.NET MVC 5项目创建的数据库相同。然而,它突然停止了,我无法连接到它,也无法使用重新启动它

SqlLocalDb start Projects

我得到

The specified LocalDB instance does not exist.

我在中看到了文件夹

C:Users[My UserName]AppDataLocalMicrosoftMicrosoft SQL Server Local DBInstancesProjects

另外,我在中有v11.0

C:Users[My UserName]AppDataLocalMicrosoftMicrosoft SQL Server Local DBInstancesv11.0

我可以连接到v11。

我还能尝试重新连接到它吗?

连接字符串为

 <add name="DefaultConnection"  connectionString="Data Source=(localdb)Projects;Initial Catalog=master;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False" providerName="System.Data.SqlClient" />

编辑

我尝试将Db文件附加到连接字符串

AttachDbFileName=C:Users[My UserName]AppDataLocalMicrosoftMicrosoft SQL Server Local DBInstancesProjectsmaster.mdf;

然而,我仍然无法连接

A network-related or instance-specific error occurred while establishing a connection to SQL
Server. The server was not found or was not accessible. Verify that the instance name is correct
and that SQL Server is configured to allow remote connections. (provider: SQL Network
Interfaces, error: 50 - Local Database Runtime error occurred. The specified LocalDB instance
does not exist.)

似乎(localdb)Projects实例已被删除。您可以使用(localdb)v11.0,也可以使用SqlLocalDB实用程序重新创建Projects实例

sqllocaldb c Projects 11.0

命令行解释

  • c-代表"创建"
  • "Projects-是实例名称
  • 11.0是版本

在我的例子中,Projects实例已经存在,实际上是在命令行中调用它之后:

sqllocaldb i

显示了所有实例的列表,我的是:

  • MSSQLLocalDB
  • 项目
  • 项目V12
  • v11.0

我的Web.Config中的连接字符串默认为Data Source=(LocalDb)v11.0,所以我认为该实例实际上应该是v11.0,而不是Projects。通过执行sqllocaldb i v11.0:

名称:v11.0

版本:11.0.3000.0

自动创建:是

状态:已停止

通过用sqllocaldb s v11.0启动实例,状态更改为正在运行,但即使这些实例都在运行,仍会引发异常。

我后来发现,实例的名称必须是当您在PackageManager控制台中调用Update-Database -Verbose时显示的名称,在我的控制台中显示:

目标数据库为:"Videos.Models.VideoDb"(数据源:(localdb)**v12.0**,提供程序:System.Data.SqlClient,来源:约定)。

因此,我只需要用sqllocaldb c v12.0 12.0创建v12.0实例,并将Web.Config调整为此名称。完成此操作后,更新成功。

有趣的是,在使用(LocalDb)\Projects几个月后,我刚刚遇到了同样的问题。

我碰巧知道,在我的机器停止工作之前,我在机器上做的最后一件事是安装Telerik的Kendo MVC UI的更新版本(它也碰巧在LocalDb v11.0中安装了Kendo.MVC.EXAMPLES\APP_DATA\SAMPLE.MDF),我敢打赌,它会启动和停止v11.0本地数据库,它会以某种方式将Projects实例搞砸,就像你一样,没有什么能重新启动它。

但是,如果首先将所有.mdf和.ldf文件复制到临时文件夹中,然后按照Mrchief的建议再次创建"Projects"实例,然后将你的文件复制回创建的项目中的文件之上,它会将你的项目数据库恢复到原始状态。

就在一秒钟前,它成功了。

您可以在web.config或App.config的entityFramework标记中将属性-->参数更改为"v11.0",而不是v12.0它的效果很好

最新更新