From c512ca4959dc9be34b4bfe45a6b0098b8edd13ca Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Wed, 12 May 2021 19:17:59 -0700 Subject: [PATCH 1/2] Increase KestrelServerLimits.KeepAliveTimeout to 130 seconds --- src/Servers/Kestrel/Core/src/KestrelServerLimits.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs b/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs index be0bf72314f6..6f8012b5f108 100644 --- a/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs +++ b/src/Servers/Kestrel/Core/src/KestrelServerLimits.cs @@ -33,8 +33,9 @@ public class KestrelServerLimits // Matches the default LimitRequestFields in Apache httpd. private int _maxRequestHeaderCount = 100; - // Matches the default http.sys connectionTimeout. - private TimeSpan _keepAliveTimeout = TimeSpan.FromMinutes(2); + // Slightly more than SocketHttpHandler's old PooledConnectionIdleTimeout of 2 minutes. + // https://github.com/dotnet/runtime/issues/52267 + private TimeSpan _keepAliveTimeout = TimeSpan.FromSeconds(130); private TimeSpan _requestHeadersTimeout = TimeSpan.FromSeconds(30); @@ -169,7 +170,7 @@ public long? MaxRequestBodySize /// /// Gets or sets the keep-alive timeout. - /// Defaults to 2 minutes. + /// Defaults to 130 seconds. /// /// /// From dd28f11823cd488a9e0f3789cd8aa851fa5337b1 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Thu, 13 May 2021 16:03:42 -0700 Subject: [PATCH 2/2] Fix KeepAliveTimeoutDefault test --- src/Servers/Kestrel/Core/test/KestrelServerLimitsTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Servers/Kestrel/Core/test/KestrelServerLimitsTests.cs b/src/Servers/Kestrel/Core/test/KestrelServerLimitsTests.cs index fd8146804e17..e7b8372a1231 100644 --- a/src/Servers/Kestrel/Core/test/KestrelServerLimitsTests.cs +++ b/src/Servers/Kestrel/Core/test/KestrelServerLimitsTests.cs @@ -150,7 +150,7 @@ public void MaxRequestHeaderCountValid(int value) [Fact] public void KeepAliveTimeoutDefault() { - Assert.Equal(TimeSpan.FromMinutes(2), new KestrelServerLimits().KeepAliveTimeout); + Assert.Equal(TimeSpan.FromSeconds(130), new KestrelServerLimits().KeepAliveTimeout); } [Theory]