Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.NET Core:尝试为文件附加自动命名数据库失败_Asp.net_Sql Server_Localdb_Sql Server 2016 Express_Sql Server 2016 Localdb - Fatal编程技术网

ASP.NET Core:尝试为文件附加自动命名数据库失败

ASP.NET Core:尝试为文件附加自动命名数据库失败,asp.net,sql-server,localdb,sql-server-2016-express,sql-server-2016-localdb,Asp.net,Sql Server,Localdb,Sql Server 2016 Express,Sql Server 2016 Localdb,我知道这个问题已经被问过很多次了,但我仍然找不到一个与我的场景类似的问题 我正在从事一个ASP.NET核心WebAPI项目。 这一切都很好,我真的无法重现如果我把事情搞砸了会发生什么 它应该使用以下连接字符串进行调试,该字符串从appsettings.Development.json文件中检索: 调用context.Database.CreateIfNotExists()时,我得到以下错误: 发生System.Data.SqlClient.SqlException(HResult 0x80131

我知道这个问题已经被问过很多次了,但我仍然找不到一个与我的场景类似的问题

我正在从事一个ASP.NET核心WebAPI项目。 这一切都很好,我真的无法重现如果我把事情搞砸了会发生什么

它应该使用以下连接字符串进行调试,该字符串从appsettings.Development.json文件中检索:

调用
context.Database.CreateIfNotExists()时,我得到以下错误:

发生System.Data.SqlClient.SqlException(HResult 0x80131904):

尝试为文件C:\Users\Shimmy\Documents\Visual Studio 2017\Projects\MyProj\MyProj.Api\AppData\MyProj.mdf附加自动命名数据库失败。存在同名数据库,或无法打开指定的文件,或该文件位于UNC共享上。
来源:.Net SqlClient数据提供程序
堆栈跟踪: 位于System.Data.SqlClient.SqlInternalConnection.OneError(SqlException异常,布尔断开连接,操作'1 wrapCloseInAction)

我将WebAPI作为Kestrel控制台应用程序运行

以下是我尝试过的:

  • 向连接字符串添加
    integratedsecurity=True
    MultipleActiveResultSets=True
  • 已将完整路径添加到连接字符串
  • 删除并重新创建MSSQLLocalDB实例
  • 重新安装SQL LocalDB
AttachDbFilename
标志替换为
Initial Catalog=MyProj
,引发以下错误:

System.Data.SqlClient.SqlException发生
HResult:0x80131904
消息:无法打开登录请求的数据库“MyProj”。登录失败。 用户“SHIMMY-PC\SHIMMY”登录失败。
来源:.Net SqlClient数据提供程序
堆栈跟踪: 位于System.Data.SqlClient.SqlInternalConnection.OneError(SqlException异常,布尔断开连接,操作'1 wrapCloseInAction)

但SHIMMY-PC\SHIMMY确实出现在实例的用户中:


只有在预先创建数据库文件的情况下,我才能让它工作,这并不是我真正想要的,但我不会为此争吵

顺便说一句,我找到了一种简便的方法来删除/创建数据库,而不会造成太多麻烦。
我打开developer CLI并导航到project/solution文件夹,然后调用
dotnet ef database
,首先使用
drop
然后使用
update
在.net core环境中,您应该能够通过绕过
自动命名部分来修复它。只需添加:

初始目录=MyNotAutoNamedDb

连接字符串中的某个位置,它应该可以工作

[注意:不要替换
AttachDbFilename
!]

"DefaultConnection":
  "Data Source=(localdb)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|MyProj.mdf"