@@ -1342,7 +1342,6 @@ public async Task Settings_MaxFrameSize_Larger_Server(string scheme)
1342
1342
1343
1343
[ Theory ]
1344
1344
[ MemberData ( nameof ( SupportedSchemes ) ) ]
1345
- [ QuarantinedTest ( "https://github.com/dotnet/aspnetcore/issues/45811" ) ]
1346
1345
public async Task Settings_MaxHeaderListSize_Server ( string scheme )
1347
1346
{
1348
1347
var oneKbString = new string ( 'a' , 1024 ) ;
@@ -1351,26 +1350,27 @@ public async Task Settings_MaxHeaderListSize_Server(string scheme)
1351
1350
{
1352
1351
ConfigureKestrel ( webHostBuilder , scheme ) ;
1353
1352
webHostBuilder . ConfigureServices ( AddTestLogging )
1354
- . Configure ( app => app . Run ( context => throw new NotImplementedException ( ) ) ) ;
1353
+ . Configure ( app => app . Run ( context => context . Response . WriteAsync ( "Hello World" ) ) ) ;
1355
1354
} ) ;
1356
1355
using var host = await hostBuilder . StartAsync ( ) . DefaultTimeout ( ) ;
1357
1356
1358
1357
var url = host . MakeUrl ( scheme ) ;
1359
1358
1360
1359
using var client = CreateClient ( ) ;
1361
- // There's no point in waiting for the settings to sync, the client doesn't check the header list size setting.
1362
- // https://github.com/dotnet/runtime/blob/48a78bfa13e9c710851690621fc2c0fe1637802c/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/Http2Connection.cs#L467-L494
1360
+ // Send an initial request to ensure the settings get synced before the real test.
1361
+ var responseBody = await client . GetStringAsync ( url ) . DefaultTimeout ( ) ;
1362
+ Assert . Equal ( "Hello World" , responseBody ) ;
1363
1363
1364
1364
var request = CreateRequestMessage ( HttpMethod . Get , url , content : null ) ;
1365
1365
// The default size limit is 32kb.
1366
1366
for ( var i = 0 ; i < 33 ; i ++ )
1367
1367
{
1368
1368
request . Headers . Add ( "header" + i , oneKbString + i ) ;
1369
1369
}
1370
- var response = await client . SendAsync ( request ) . DefaultTimeout ( ) ;
1371
- await host . StopAsync ( ) . DefaultTimeout ( ) ;
1370
+ var ex = await Assert . ThrowsAsync < HttpRequestException > ( ( ) => client . SendAsync ( request ) . DefaultTimeout ( ) ) ;
1371
+ Assert . Equal ( "The HTTP request headers length exceeded the server limit of 32768 bytes." , ex . Message ) ;
1372
1372
1373
- Assert . Equal ( HttpStatusCode . RequestHeaderFieldsTooLarge , response . StatusCode ) ;
1373
+ await host . StopAsync ( ) . DefaultTimeout ( ) ;
1374
1374
}
1375
1375
1376
1376
[ Theory ]
0 commit comments