Я меняю своего провайдера сервера баз данных с MySQL на SQL Server Express, поэтому я меняю все свои библиотеки классов .NET Framework 4.6.1, которые я использовал ранее для соединения с базой данных MySQL. Конечно, я заново создал миграцию, установил 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) [0x00f]] 1038 *
в Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute [TState, TResult] (стратегия Microsoft.EntityFrameworkCore.Storage.IExecutionStrategy, состояние TState, операция System.Func`2 [T, TResult]) [0x00000] в: 0
в Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists (System.Boolean retryOnNotExists) [0x00034] в <253b972c331e4e9c86e8f6b8430dc9d0>: 0 * 10 *
в Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists () [0x00000] в <253b972c331e4e9c86e8f6b8430dc9d0>: 0
в Microsoft.EntityFrameworkCore.Migrations.HistoryRepository.Exists () [0x0000b] в <69f795dffc844780bfcfff4ff8415a92>: 0
в Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate (System.String targetMigration) [0x00012] в <69f795dffc844780bfcfff4ff8415a92>: 0
в Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate (Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade databaseFacade) [0x00010] в <69f795dffc844780bfcfff4ff8415a92>: 0
в RestoreMonarchy.SQLKits.SQLKitsPlugin + d__13.MoveNext () [0x00033] в <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] в: 0
в System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (задача System.Threading.Tasks.Task) [0x00008] в: 0
в System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] в: 0
в Rocket.Core.Plugins.Plugin + d__32.MoveNext () [0x002c4] в <4bcff08a1274468caf2867ee950c3ee7>: 0```