我正在尝试创建一个新的 asp.net core 应用程序,它使用 EF7 访问本地数据库,但我在连接字符串方面遇到了一些问题。我已经安装了本地数据库服务,并且已经创建了多个实例:
PS C:\Users\luisabreu> sqllocaldb info
MSSQLLocalDB
ProjectsV12
ProjectsV13
v11.0
MSSQLLocalDB 正在运行 v12:
PS C:\Users\luisabreu> sqllocaldb info mssqllocaldb
Name: MSSQLLocalDB
Version: 12.0.2000.8
Shared name:
Owner: GRM\luisabreu
Auto-create: Yes
State: Running
Last start time: 05/04/2016 08:46:17
Instance pipe name: np:\\.\pipe\LOCALDB#518FD662\tsql\query
这是我传递给 EF 的连接字符串:
{
"usersCnnString": "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=UsersInfo;Integrated Security=True"
}
顺便说一句,我也已经尝试过这个:
"usersCnnString": "Server=(localdb)\\mssqllocaldb;Database=UsersInfo;Trusted_Connection=True"
这是我用于设置 ED 依赖项的设置代码:
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<UsersContext>(options => options.UseSqlServer(Configuration["usersCnnString"]));
每当我尝试访问数据库时,都会出现以下错误:
System.Data.SqlClient.SqlException (0x80131904): 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. Specified LocalDB instance name is invalid.)
我肯定做错了什么,但是什么?
谢谢! 路易斯
最佳答案
嗯,事情更简单......每当您更改 ASP.NET Core 应用程序的配置时,请不要忘记终止 iis express,以便您在重新运行应用程序时获得正确的配置数据。问题是当我粘贴路径时:
Server=(localdb)\\mssqllocaldb...
进入json文件,VS 2015自动转义字符串,将其变成:
Server=(localdb)\\\\mssqllocaldb...
是的,我注意到了,但只是在尝试在浏览器上加载应用程序之后才注意到。我更正了路径,但没有终止我用来测试应用程序的 IIS Express 实例。因此,错误消息绝对正确,因为它仍在使用旧路径(试图访问在 localdb 服务器上运行的 mssqllocaldb 实例)。
又是一个愚蠢的错误。希望我的错误能够为其他人节省 30 分钟的时间...
关于entity-framework - EF7 : error connecting to a local db database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36423908/