指定的LocalDb实例不存在

时间:2014-09-24 03:11:37

标签: asp.net-mvc localdb

我一直在使用名为'Projects'的localDB。这是默认情况下ASP.NET MVC 5项目创建的数据库。然而,突然它停止了,我无法连接到它,也没有使用

重新启动它
SqlLocalDb start Projects

我得到了

The specified LocalDB instance does not exist.

我在

中看到了该文件夹
C:\Users\[My UserName]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\Projects

另外,我在

中有v11.0
C:\Users\[My UserName]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\v11.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]\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\Projects\master.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.)

4 个答案:

答案 0 :(得分:21)

似乎(localdb)\Projects实例已被删除。您可以使用(localdb)\v11.0或使用SqlLocalDB utility

重新创建Projects实例
sqllocaldb c Projects 11.0

命令行解释

  • c - 适用于“创建”
  • “项目 - 是实例名称
  • 11.0是版本

答案 1 :(得分:3)

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

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

但是,如果将所有.mdf和.ldf文件复制到临时文件夹中, 然后按照Mrchief的建议创建&#34; Projects&#34;再一次, 然后将您的文件复制回创建在项目中放置的文件的顶部,它会将您的Projects数据库恢复到其原始状态。

就在一秒钟前完成它并且有效。

答案 2 :(得分:3)

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

sqllocaldb i

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

  
      
  • MSSQLLocalDB
  •   
  • 项目
  •   
  • ProjectsV12
  •   
  • 11.0
  •   

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

  

姓名:v11.0

     

版本:11.0.3000.0

     

...

     

自动创建:是

     

状态:停止

     

...

通过使用sqllocaldb s v11.0启动实例, State 已更改为正在运行,但即使这些实例都在运行,仍会抛出异常

我后来发现,实例的名称必须是您在程序包管理器控制台中调用 Update-Database -Verbose时显示的名称。这出现了:

  

目标数据库是:'Videos.Models.VideoDb'(DataSource:(localdb)** v12.0 **,Provider:System.Data.SqlClient,Origin:Convention)。

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

答案 3 :(得分:1)

您可以更改属性 - &gt;参数为“v11.0”而不是web.config或App.config中entityFramework标记中的v12.0 它运作良好