Asp.net-Core
帶有取消令牌的自定義 ASP.NET Core 中間件
我有一個自定義 ASP.NET Core 中間件,我想檢索請求的取消令牌。
我試圖將它添加到呼叫的簽名中,如下所示:
public async Task Invoke(HttpContext context,CancellationToken token)但是一旦我添加它,它就不再被呼叫了。
我究竟做錯了什麼?
我認為這個想法是不能從中間件內部取消中間件的呼叫,如果您呼叫一些接受取消令牌的非同步任務,那麼您可以創建一個並將其傳遞給您從內部呼叫的內容。
如果請求被中止,一個常見的場景是取消任務,因此您可以像這樣創建令牌:
CancellationToken CancellationToken => context?.RequestAborted ?? CancellationToken.None;然後呼叫一些非同步服務,比如獲取數據或查詢數據庫,如果請求被中止,那麼取消請求應該發生