Действительно, большое количество ASP Core промежуточного программного обеспечения ios не будет работать полностью в серверном приложении Blazor. Это потому, что Blazor работает с SignalR и Blazor Hub.
Вы увидите, что при запуске приложения Blazor сначала появляются несколько HTTP-запросов, которые будут проходить конвейер до конца. (в большинстве случаев это начальная загрузка страницы, а затем фаза согласования). Но затем приходит запрос к «/ _blazor», и в этот момент соединение остается открытым для продолжения связи через веб-сокеты. Если после этого этапа у вас возникнет исключение, оно не войдет в ваш обработчик исключений.
Вы можете наблюдать это, создав небольшой класс промежуточного программного обеспечения, который зарегистрирован с помощью метода расширения UseMiddleware в IApplicationBuilder . Для такого промежуточного класса требуется метод Invoke , например, такой:
.....
public class TestMiddleware
{
private readonly RequestDelegate _next;
public TestMiddleware(RequestDelegate next)
{
_next = next
}
public async Task Invoke(HttpContext context)
{
await _next(context);
}
....
Если вы установите точку останова в Invoke , вы заметите, что не будете сделайте шаг, как только параметр контекста будет указывать путь "/ _blazor".
Вот еще одна ссылка, в которой рассматриваются аналогичные проблемы, отличающиеся от той, которая связана с обработчиком исключений, но также связанные с промежуточным программным обеспечением ASP. NET: https://github.com/aspnet/SignalR/issues/1334