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