Обрабатывать исключение страницы бритвы - PullRequest
0 голосов
/ 31 октября 2018

Привет, я получаю странное поведение в нашем приложении AspNetCore 2.1, используя Razor Pages. Когда исключение выходит из действия Razor Page, такого как OnGet, происходит сбой приложения. Исключение никогда не достигает промежуточного программного обеспечения. Похоже, приложение кажется, что падает где-то во внутреннем методе PageActionInvoker.Next.

Я не могу вставить код слишком много. Но следующий сбой приложения:

public async void OnGet() {
    await Task.CompletedTask; // normally we await something else
    throw new Exception("Boom!");
}

Примечание:

Мы:

  • объединение видов и бритвенных страниц. Представления являются частью «старого» раздела приложения.
  • мы разрешаем область Razor Page.

Нужно ли настраивать какую-то функцию?

Мы что-то упустили? У кого-нибудь есть предложения?

НАЙДЕНО Ничего особенного. Ну, AspNetCore принимает async void OnGet , и все работает, пока не возникнет исключение.

используя следующие исправления.

public async Task OnGetAsync() {

1 Ответ

0 голосов
/ 31 октября 2018

Кажется, что даже AspNetCore не справляется со следующей конструкцией:

public async void OnGet() {
...
}

Даже если он принят и работает, возможные исключения не обрабатываются правильно.

Правильный способ сделать это:

public async Task OnGetAsync() {
....
}

Не знаю, классифицируется ли это как ошибка AspNetCore ... в этом смысле, возможно, ее следует отклонить, как и многие другие. Ну что ж ... ошибка исправлена.

...