diff --git a/src/Microsoft.AspNetCore.Sockets/TaskQueue.cs b/src/Microsoft.AspNetCore.Sockets/TaskQueue.cs index 5fbbb704cb..09423769eb 100644 --- a/src/Microsoft.AspNetCore.Sockets/TaskQueue.cs +++ b/src/Microsoft.AspNetCore.Sockets/TaskQueue.cs @@ -41,7 +41,15 @@ namespace Microsoft.AspNetCore.Sockets return _lastQueuedTask; } - var newTask = _lastQueuedTask.ContinueWith((t, s1) => taskFunc(s1), state).Unwrap(); + var newTask = _lastQueuedTask.ContinueWith((t, s1) => + { + if (t.IsFaulted || t.IsCanceled) + { + return t; + } + return taskFunc(s1); + }, + state).Unwrap(); _lastQueuedTask = newTask; return newTask; }