Похоже, что кто-то другой (другой посредник) уже закрыл поток.
In. net - ядро имеет значение. Помните в ссылке, которой вы поделились:
Важно: Не забудьте добавить ее перед использованием Mvc (или UseRouting in. Net Core 3), так как важен порядок.
Итак, объявите UseExceptionHandler
перед любым другим Middlewhate
и / или объявлением конфигурации.
Ознакомьтесь с руководством по промежуточному программному обеспечению здесь
Объедините несколько делегатов запросов вместе с использованием. Следующий параметр представляет следующий делегат в конвейере. Вы можете закоротить конвейер, не вызывая следующий параметр. Обычно вы можете выполнять действия как до, так и после следующего делегата, как показано в следующем примере:
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.Use(async (context, next) =>
{
// Do work that doesn't write to the Response.
await next.Invoke();
// Do logging or other work that doesn't write to the Response.
});
app.Run(async context =>
{
await context.Response.WriteAsync("Hello from 2nd delegate.");
});
UseExceptionHandler - первый компонент промежуточного программного обеспечения, добавленный в конвейер , Поэтому промежуточное программное обеспечение обработчика исключений перехватывает любые исключения, возникающие в последующих вызовах.
При первом запуске завершается конвейер. Таким образом, вы можете выполнить некоторую работу, но в конце, когда произойдет первый запуск, отклик закроется.
Пожалуйста, поделитесь с нами большим количеством кода, чтобы помочь больше.