Asp.net-Core

帶有取消令牌的自定義 ASP.NET Core 中間件

  • December 10, 2021

我有一個自定義 ASP.NET Core 中間件,我想檢索請求的取消令牌。

我試圖將它添加到呼叫的簽名中,如下所示:

public async Task Invoke(HttpContext context,CancellationToken token)

但是一旦我添加它,它就不再被呼叫了。

我究竟做錯了什麼?

我認為這個想法是不能從中間件內部取消中間件的呼叫,如果您呼叫一些接受取消令牌的非同步任務,那麼您可以創建一個並將其傳遞給您從內部呼叫的內容。

如果請求被中止,一個常見的場景是取消任務,因此您可以像這樣創建令牌:

CancellationToken CancellationToken => context?.RequestAborted ?? CancellationToken.None;

然後呼叫一些非同步服務,比如獲取數據或查詢數據庫,如果請求被中止,那麼取消請求應該發生

引用自:https://stackoverflow.com/questions/38098564