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.0
到MSSQLLocalDB
so-><connectionStrings> <add name="ProductsContext" connectionString="Data Source=(localdb)\mssqllocaldb; ...
我发现最简单的就是做下面的事 – 我附上了图片和步骤的帮助。
首先validation您安装了哪个实例,可以通过检查registry 并 运行cmd来完成
-
cmd> Sqllocaldb.exe i
-
cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore"
如果此步骤失败,则可以使用选项d
cmd> Sqllocaldb.exe d“someDb” -
cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
-
cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"
编辑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如下:
-
首先在applicationHostconfiguration文件中进行更改。 replace下面的stringsetProfileEnvironment =“false”to setProfileEnvironment =“true”
-
在你的数据库连接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”启动。