c# - 如何修复 EF Core 中的“远程主机强制关闭现有连接”错误
问题描述
我正在将我的数据库服务器提供程序从 MySQL 更改为 SQL Server Express,因此我正在更改我之前用于 MySQL 数据库连接的所有 .NET Framework 4.6.1 类库。当然,我重新创建了迁移,安装Microsoft.EntityFrameWorkCore.SqlServer
而不是 MySQL 并设置了DbContext
.
我将这些库用作游戏服务器插件,因此我将它们安装在那里。可悲的是,如果无法加载并引发此错误:
System.Net.Sockets.SocketException (0x80004005):现有连接被远程主机强行关闭。
我尝试运行与DbContext
.NET Framework 4.6.1 控制台应用程序相同的应用程序并且它工作正常。我还为使用 MySQL 的其他类库更改了所有内容,但它也无法加载。所以我相信这个错误只发生在类库上。
我的数据库上下文(SQLKits
是我的游戏插件的名称)
public class SQLKitsContext : DbContext
{
public virtual DbSet<Kit> Kits { get; set; }
public virtual DbSet<KitItem> KitItems { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=localhost\sqlexpress;Database=unturned;Trusted_Connection=True;");
}
}
这是我定义的实例类的图像DbContext
:
https://i.imgur.com/hb0H9l0.png
我也尝试在不迁移的情况下使用它,但它也失败了。
在 SQL Server Profiler 中,连接尝试没有任何内容,因此插件甚至没有连接到它。
我调试这个问题很长时间了,我自己真的无法解决,也没有人能帮助我,所以我在这里寻求解决方案。
~谢谢
完全错误:
System.Net.Sockets.SocketException (0x80004005):现有连接被远程主机强行关闭。
在 Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult] (Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy 策略,System.Func
2[T,TResult] operation, System.Func
2[T,TResult] verifySucceeded,TState 状态)[0x0001f] 在
Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions 中:0。在 Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator的 :0 中执行 [TState,TResult](Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy 策略,TState 状态,System.Func`2[T,TResult] 操作)[0x00000]
。存在 (System.Boolean retryOnNotExists) [0x00034] 在 <253b972c331e4e9c86e8f6b8430dc9d0>:0
在 Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists () [0x00000] 在 <253b972c331e4e9c86e8f6b8430dc:0
在 Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists () [0x0000b] in <69f795dffc844780bfcfff4ff8415a92>:0在 Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate
(System.String targetMigration) [0x00012] 在 <69f795dffc844780bfcfa4ff845:0
.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate (Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade) [0x00010] in <69f795dffc844780bfcfff4ff8415a92>:0
at RestoreMonarchy.SQLKits.SQLKitsPlugin+d__13.MoveNext () [0x00033] in <4589f5df884b435cab61ef028aadd6e8>:0--- 从先前抛出异常的位置结束堆栈跟踪 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] 在:0
在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task 任务) [0x0003e] 在:0
在 System.Runtime.CompilerServices .TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task 任务) [0x00028] 在
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task 任务) [0x00008] 在
System.Runtime :0 .CompilerServices.TaskAwaiter.GetResult () [0x00000] in :0
at Rocket.Core.Plugins.Plugin+d__32.MoveNext () [0x002c4] in <4bcff08a1274468caf2867ee950c3ee7>:0```
解决方案
将连接字符串更改为
optionsBuilder.UseSqlServer(@"Server=.\sqlexpress;Database=unturned;Trusted_Connection=True;")
推荐阅读
- html - 防止 Bootstrap 按钮中的 fontawesome 图标单独换行到下一行
- charts - ChartJS - 在同一日期具有多个值的图形
- google-sheets - 谷歌表格 - 将脚本分配给一个按钮,该按钮将根据第三个单元格信息将新数据从一个单元格粘贴到另一个单元格
- python - 并发运行相同的查询(每六分钟)锁定一个 PostgreSQL 表
- python - 烧瓶 | Heroku buildpack:odbc | 为 SQL Server 安装 ODBC 驱动程序 17 | Heroku buildpack-apt 上的错误
- python - 使用 SMOTE 平衡数据集和 ktrain 包
- android - Android Studio:未解决的参考:box_three_text
- wordpress - 获取请求在 Firefox 浏览器上被阻止说“NS_BINDING_ABORTED”
- php - 使用 phpspreadsheet 在单元格中设置不同的颜色,它会在 android 和 Mac 上得到错误样式
- typescript - 在打字稿中,如何使用方法参数中的属性名称(即外部范围)索引受保护/私有属性