TGViewer
Библиотека шарписта | C#, F#, .NET, ASP.NET Библиотека шарписта | C#, F#, .NET, ASP.NET @csharpproglib · 21.7K subscribers
Post #7272 1.83K
🧩 Middleware в ASP.NET Core: 3 ловушки

Middleware — звено HTTP pipeline:


app.Use(async (context, next) =>
{
Console.WriteLine("Request");

await next(context);

Console.WriteLine("Response");
});



1️⃣ Забыл next() — остановил pipeline


await _next(context);


Если его не вызвать, middleware ниже и endpoint не выполнятся.

2️⃣ Scoped-сервис не стоит инжектить в конструктор

Middleware переиспользуется между запросами, поэтому Scoped лучше получать в InvokeAsync:


public async Task InvokeAsync(
HttpContext context,
IMyScopedService service)
{
await _next(context);
}


3️⃣ После начала ответа менять его уже нельзя


await _next(context);

context.Response.StatusCode = 503; // 💥



Если response уже отправляется, будет InvalidOperationException.

💡 Для действий до отправки используйте Response.OnStarting().

И ещё: не передавайте scoped-сервис в Task.Run после завершения запроса — его scope уже мог быть уничтожен. Для фоновой работы создавайте новый scope или используйте BackgroundService 🧠

🔗 Источник

📍 Навигация: ВакансииЗадачиСобесы

🐸Библиотека шарписта

#il_люминатор
  • 👍 7
More from @csharpproglib
  1. Sep 20, 2026💪 Разминка перед трудовыми буднями Что произойдёт? ❤️ — список станет [1, 3] 🔥 — Invalid…
  2. Sep 18, 2026📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #garbage_collector
  3. Sep 17, 2026🦆 Duck typing в C# — почти как в TypeScript В TypeScript достаточно, чтобы у объекта был…
  4. Sep 17, 2026🧠 Почему .NET-под съедает всю память? kubectl top pod показывает 1 ГБ, а managed heap зан…
  5. Sep 15, 2026🧑‍💻 Забытый await: от race condition до DoS-атаки В C# ключевое слово async — это инстру…
  6. Sep 15, 2026😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как трати…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →