diff --git a/src/Microsoft.AspNetCore.Server.Kestrel/Http/FrameRequestStream.cs b/src/Microsoft.AspNetCore.Server.Kestrel/Http/FrameRequestStream.cs index f16cf244c..dd36f28c2 100644 --- a/src/Microsoft.AspNetCore.Server.Kestrel/Http/FrameRequestStream.cs +++ b/src/Microsoft.AspNetCore.Server.Kestrel/Http/FrameRequestStream.cs @@ -165,7 +165,7 @@ private Task ValidateState(CancellationToken cancellationToken) case FrameStreamState.Open: if (cancellationToken.IsCancellationRequested) { - return TaskUtilities.GetCancelledZeroTask(); + return TaskUtilities.GetCancelledZeroTask(cancellationToken); } break; case FrameStreamState.Closed: diff --git a/src/Microsoft.AspNetCore.Server.Kestrel/Infrastructure/TaskUtilities.cs b/src/Microsoft.AspNetCore.Server.Kestrel/Infrastructure/TaskUtilities.cs index 8935ac7bd..97f64e3e2 100644 --- a/src/Microsoft.AspNetCore.Server.Kestrel/Infrastructure/TaskUtilities.cs +++ b/src/Microsoft.AspNetCore.Server.Kestrel/Infrastructure/TaskUtilities.cs @@ -26,12 +26,15 @@ public static Task GetCancelledTask(CancellationToken cancellationToken) #endif } - public static Task GetCancelledZeroTask() + public static Task GetCancelledZeroTask(CancellationToken cancellationToken = default(CancellationToken)) { - // Task.FromCanceled doesn't return Task +#if NETSTANDARD1_3 + return Task.FromCanceled(cancellationToken); +#else var tcs = new TaskCompletionSource(); tcs.TrySetCanceled(); return tcs.Task; +#endif } } } \ No newline at end of file