Visual Studio Это приложение находится в режиме приостановки

Я делаю это:


public async Task Update(Entity input)
{
    ValidateUpdate(input);
    await UpdateAsync(input);
}

public async void ValidateUpdate()
{
    // Some Logic
    int adminCount = await _dbContext.AdminEntities
        .CountAsync();
    if (adminCount == 0)
    {
        throw new AppUserException("The tenant must always have at least one admin.");
    }
}

И когда я нажимаю исключение, Visual Studio показывает его мне, но затем, когда я нажимаю «Продолжить выполнение», VS показывает мне страницу «Приложение находится в режиме приостановки». Если я снова нажму «Продолжить выполнение», VS просто перестанет запускать приложение. Когда я выбрасываю такое же исключение в других частях своего приложения, оно просто возвращается как ответ на мой HTTP-запрос. Я не понимаю, почему.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я обнаружил проблему, потому что я сделал свой метод асинхронным, не изменив тип возвращаемого значения void на Task и не дожидаясь проверки. Это фиксированный пример:


public async Task Update(Entity input)
{
    await ValidateUpdateAsync(input);
    await UpdateAsync(input);
}

public async Task ValidateUpdateAsync()
{
    // Some Logic
    int adminCount = await _dbContext.AdminEntities
        .CountAsync();
    if (adminCount == 0)
    {
        throw new AppUserException("The tenant must always have at least one admin.");
    }
}

Я торопился и забыл проверить основы. Я надеюсь, что это, по крайней мере, поможет кому-то еще или мне самому в будущем, когда я неизбежно совершу ту же ошибку снова.

Здравствуйте, рад узнать, что вы нашли решение этой проблемы! Пожалуйста, примите его как ответ, чтобы изменить его статус на «Отвечено». См. можно я сам отвечу на свой вопрос.., просто напоминание :)

Jingmiao Xu-MSFT 25.03.2022 02:05

Да, мне пришлось подождать пару дней, прежде чем я смог принять ответ. Даже если он был моим собственным. Я просто отметил это как ответ, спасибо за напоминание!

J Flex 28.03.2022 08:44

Другие вопросы по теме