diff --git a/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionContext.cs b/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionContext.cs index a12e8aba61..045e821ee1 100644 --- a/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionContext.cs +++ b/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionContext.cs @@ -182,6 +182,8 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal { Task disposeTask; + Cancellation?.Dispose(); + await StateLock.WaitAsync(); try { diff --git a/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionDispatcher.cs b/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionDispatcher.cs index f8c33e051f..e13b532e16 100644 --- a/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionDispatcher.cs +++ b/src/Microsoft.AspNetCore.Http.Connections/Internal/HttpConnectionDispatcher.cs @@ -313,10 +313,6 @@ namespace Microsoft.AspNetCore.Http.Connections.Internal connection.LastSeenUtc = DateTime.UtcNow; connection.Status = HttpConnectionStatus.Inactive; - - connection.Cancellation?.Cancel(); - - connection.Cancellation = null; } } finally