我知道这个问题已经被问过很多次了,但我仍然无法找到与我的场景类似的问题。
我正在开发一个 ASP.NET Core WebAPI 项目。这一切都运作良好,如果我完全搞砸了,我无法真正重现。
它应该使用从appsettings.Development.json文件中检索到的连接字符串进行调试:
"DefaultConnection":
"Data Source=(localdb)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|MyProj.mdf"
调用时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 数据提供程序
StackTrace:在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔 breakConnection,Action`1 wrapCloseInAction)
我将 WebAPI 作为 Kestrel 控制台应用程序运行。
这是我尝试过的:
- 在连接字符串中添加
Integrated Security=True
或MultipleActiveResultSets=True
- 添加了连接字符串的完整路径
- 删除和重新创建MSSQLLocalDB实例
- 重新安装 SQL LocalDB
用 替换AttachDbFilename
标志Initial Catalog=MyProj
,引发此错误:
System.Data.SqlClient.SqlException 发生
HResult:0x80131904
消息:无法打开登录请求的数据库“MyProj”。登录失败。用户 'SHIMMY-PC\Shimmy' 登录失败。
来源:.Net SqlClient 数据提供程序
StackTrace:在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔 breakConnection,Action`1 wrapCloseInAction)
但SHIMMY-PC\Shimmy确实出现在实例的用户中: