«Невозможно получить доступ к удаленному экземпляру контекста», который только начал происходить, нет внедрения DBContexC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 «Невозможно получить доступ к удаленному экземпляру контекста», который только начал происходить, нет внедрения DBContex

Сообщение Anonymous »

У меня есть два похожих проекта (потому что я хотел использовать один для тестирования, но по сравнению с другим ничего не меняется), в первом все работает нормально, когда я заполняю пользователя и роли при запуске, но при следующем запуске возникает проблема, которую я не могу понять, и получаю следующую ошибку:

Пользователи = {"Невозможно получить доступ Распространенной причиной этой ошибки является удаление экземпляра контекста, который был разрешен в результате внедрения зависимостей, а затем попытка использовать тот же экземпляр контекста в другом месте вашего приложения. Это может произойти, если вы вызываете Dispose в контексте. экземпляра или обернуть его в оператор using. Если вы используете внедрение зависимостей, вы должны позволить контейнеру внедрения зависимостей позаботиться об удалении экземпляров контекста.\r\nИмя объекта: 'AppDbContext'."

Это происходит, когда я запускаю 2-й проект, но этого не произошло в предыдущем, зная, что я ничего не менял.
Я читал, что эта проблема возникает, когда контроллер или метод возвращают async void, но нигде в моем коде нет метода, который возвращает это, только async Task/async Задача.
Я добавил комментарии, в которых отладчик показывает, что возникла проблема:

Код: Выделить всё

CreateRoles.cs

Код: Выделить всё

public static class CreateRoles
{
public static async Task SeedAsync(
UserManager userManager,
RoleManager  roleManager,
IConfiguration configuration,
IPasswordHasher passwordHasher)
{
IdentityResult roleResult;

var applicationRoleAdmin = new ApplicationRole
{
Id = Guid.Parse("cb0dc828-2755-4b3f-9035-788839dcc8cf"),
Name = "Admin"
};

var applicationRoleUser = new ApplicationRole
{
Id = Guid.Parse("17fdc6f4-bffe-45e6-9ca6-adb0af6ffcc3"),
Name = "User"
};

// THIS IS WHERE THE ISSUE HAPPENS, its on adminRoleExist that it breaks out of this class
// and goes back to Program.cs which never happened on the 1st project 
{
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}

using (var scope = app.Services.CreateScope())
{
var services = scope.ServiceProvider;
await DataHelper.ManageDataAsync(services, cancellationToken);

try
{
// THIS IS WHERE THE DEBUGGER SHOWS THE ERROR, on userManager and goes to the catch statement 

Подробнее здесь: [url]https://stackoverflow.com/questions/79149722/cannot-access-a-disposed-context-instance-that-just-started-to-happen-no-inje[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»