gpt4 book ai didi

c# - ASP.NET 核心 : An attempt to attach an auto-named database for file failed

转载 作者:行者123 更新时间:2023-12-05 06:38:27 34 4
gpt4 key购买 nike

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

我正在处理一个 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):

An attempt to attach an auto-named database for file C:\Users\Shimmy\Documents\Visual Studio 2017\Projects\MyProj\MyProj.Api\AppData\MyProj.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
Source: .Net SqlClient Data Provider
StackTrace: at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

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

这是我尝试过的:

  • Integrated Security=TrueMultipleActiveResultSets=True 添加到连接字符串
  • 添加了连接字符串的完整路径
  • 删除并重新创建 MSSQLLocalDB 实例
  • 重新安装 SQL LocalDB

AttachDbFilename 标志替换为 Initial Catalog=MyProj,引发此错误:

System.Data.SqlClient.SqlException occurred
HResult: 0x80131904
Message: Cannot open database "MyProj" requested by the login. The login failed. Login failed for user 'SHIMMY-PC\Shimmy'.
Source: .Net SqlClient Data Provider
StackTrace: at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

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

enter image description here

最佳答案

在 .net 核心环境中,您应该可以通过绕过 auto-naming 部分来修复它。只需添加:

Initial Catalog=MyNotAutoNamedDb;

连接字符串中的某处,它应该可以工作。

[注意:不要替换AttachDbFilename!]

关于c# - ASP.NET 核心 : An attempt to attach an auto-named database for file failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46137205/

34 4 0