SQLnetworking接口,错误:50 – 发生本地数据库运行时错误。 无法创build自动实例

我正在尝试构build一个ASP.NET MVC 5 Web应用程序,它在App_Data文件夹中有一个MyDatabase.mdf文件。 我已经安装了一个LocalDb实例的SQL Server 2014 Express。 我可以使用服务器资源pipe理器编辑数据库表,但是当我debugging应用程序并转到需要数据库的页面时,出现以下错误。

与SQL Serverbuild立连接时发生networking相关或特定于实例的错误。 服务器未find或无法访问。 validation实例名称是否正确,并将SQL Serverconfiguration为允许远程连接。 (提供程序:SQLnetworking接口,错误:50 – 发生本地数据库运行时错误。无法创build自动实例。请参阅Windows应用程序事件日志以获取错误详细信息。

所以我查看了Application下的事件查看器,只能看到一个警告一遍又一遍。

caching压缩内容C:\ Users \ User1 \ AppData \ Local \ Temp \ iisexpress \ IIS Temporary Compressed Files \ Clr4IntegratedAppPool指定的目录无效。 静态压缩被禁用。

所以我尝试重新启动服务器,仍然没有去。 与之前一样的错误50。

我在Models下创build了一个类,其中有一个名为Post的类。

 namespace MyApplication.Models { public class Post { public int Id { get; set; } public string Title { get; set; } public string Content { get; set; } } public class MyDatabase : DbContext { public DbSet<Post> Posts { get; set; } } } 

我也有一个Controller设置来列出来自MyDatabase的post。

 namespace MyApplication.Controllers { public class PostsController : Controller { private MyDatabase db = new MyDatabase(); // GET: Posts public ActionResult Index() { return View(db.Posts.ToList()); } } 

在我的web.config文件中,连接string看起来像这样…

 <connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v12.0;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> 

我已经尝试了这里发布的build议,但没有奏效。 也试过这个 。

我也注意到MyDatabase实例在我开始运行应用程序后断开连接。 如果我使用Visual Studio中的服务器资源pipe理器来刷新数据库,我可以查看这些表。

我怎样才能连接到数据库并在Visual Studio 2013中编辑它,但是当我debugging应用程序时,它无法连接到数据库?

突破对LocalDB的更改:适用于SQL 2014 ; 看看这篇文章,并尝试使用(localdb)\mssqllocaldb作为服务器名称连接到LocalDB自动实例,例如:

 <connectionStrings> <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; ... 

文章还提到使用2012年SSMS连接到2014年的LocalDB。 这导致我相信你可能有多个版本的SQL安装 – 这导致我指出这个答案 ,build议改变你的LocalDB“实例”的默认名称,以避免可能出现的其他版本不匹配问题; 提到不作为问题的根源,但提高意识的潜在冲突,多个SQL版本安装在一个单一的开发机器可能会导致…和一些习惯,以避免一些。

另一件值得一提的事情是,如果你的实例由于修补了这个问题而变得不可用,那么可能需要重新开始 – 卸载,重新安装 – 然后尝试使用mssqllocaldb值而不是v12.0 ,看看是否能纠正你的问题。

运行这个:

sqllocaldb创build“v12.0”

从CMD提示解决了这个对我来说…

我通常修复这个错误跟随这个MSDN博客文章使用LocalDB与完整的IIS

这需要编辑通常位于C:\ Windows \ System32 \ inetsrv \ config中的applicationHost.config文件。 按照KB 2547655的说明,我们应该为应用程序池ASP.NET v4.0启用这两个标志,如下所示:

 <add name="ASP.NET v4.0" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated"> <processModel identityType="ApplicationPoolIdentity" loadUserProfile="true" setProfileEnvironment="true" /> </add> 

开始 – 有4个问题可能导致常见的 LocalDb SqlExpress Sql Server连接错误 SQL Network Interfaces, error: 50 - Local Database Runtime error occurred之前,您需要将v11或v12重命名为(localdb)\ mssqllocaldb

  • 你没有运行服务
  • 这里没有configuration防火墙端口
  • 你的安装有问题/损坏 (下面的步骤帮助你一个很好的干净的开始)
  • 你没有重命名V11或12到mssqllocaldb重命名connstring从v12.0MSSQLLocalDB so-> <connectionStrings> <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; ...

我发现最简单的就是做下面的事 – 我附上了图片和步骤的帮助。

首先validation您安装了哪个实例,可以通过检查registry 运行cmd来完成

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore"如果此步骤失败,则可以使用选项d cmd> Sqllocaldb.exe d“someDb”
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

SqlLOCALDb_edited.png

编辑1: 所有版本的registrypath通用格式来追踪registry

 // SQL SERVER RECENT VERSIONS HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\(instance-name) // OLD SQL SERVER HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServer HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer // SQL SERVER 6.0 and above. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSDTC HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLExecutive // SQL SERVER 7.0 and above HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SQLServerAgent HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft SQL Server 7 HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServ65 

也许这个错误来了,因为这个version的Sql Server is not installed

 connectionString="Data Source=(LocalDB)\v12.0;.... 

而且您不必安装它

最快的修复方法是将其更改为任何已安装的版本

在我的情况下,我从v12.0更改为MSSQLLocalDB

这个问题的最终解决scheme如下:

  1. 首先在applicationHostconfiguration文件中进行更改。 replace下面的stringsetProfileEnvironment =“false”to setProfileEnvironment =“true”

  2. 在你的数据库连接string中添加下面的属性:Integrated Security = SSPI

我遇到了同样的问题。 我的修补程序正在将<parameter value="v12.0" />更改为<parameter value="mssqllocaldb" />到“app.config”文件中。

所有请注意泰勒说什么

请注意,如果你想编辑这个文件,请确保你使用的是像记事本这样的64位文本编辑器。 如果你使用Notepad ++这样的32位软件,它会自动在SysWOW64中编辑一个不同的文件副本。 我一生中的小时,我不会回来

实例可能已损坏或未正确更新
试试这些命令=>

C:> sqllocaldb停止MSSQLLocalDB
LocalDB实例“MSSQLLocalDB”已停止。

C:> sqllocaldb删除MSSQLLocalDB
LocalDB实例“MSSQLLocalDB”被删除。

C:> sqllocaldb创buildMSSQLLocalDB
使用版本13.0.1601.5创build的LocalDB实例“MSSQLLocalDB”。

C:> sqllocaldb启动MSSQLLocalDB
LocalDB实例“MSSQLLocalDB”启动。