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.
///
///
///
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]