@@ -1342,7 +1342,6 @@ public async Task Settings_MaxFrameSize_Larger_Server(string scheme)
13421342
13431343 [ Theory ]
13441344 [ MemberData ( nameof ( SupportedSchemes ) ) ]
1345- [ QuarantinedTest ( "https://github.com/dotnet/aspnetcore/issues/45811" ) ]
13461345 public async Task Settings_MaxHeaderListSize_Server ( string scheme )
13471346 {
13481347 var oneKbString = new string ( 'a' , 1024 ) ;
@@ -1351,26 +1350,27 @@ public async Task Settings_MaxHeaderListSize_Server(string scheme)
13511350 {
13521351 ConfigureKestrel ( webHostBuilder , scheme ) ;
13531352 webHostBuilder . ConfigureServices ( AddTestLogging )
1354- . Configure ( app => app . Run ( context => throw new NotImplementedException ( ) ) ) ;
1353+ . Configure ( app => app . Run ( context => context . Response . WriteAsync ( "Hello World" ) ) ) ;
13551354 } ) ;
13561355 using var host = await hostBuilder . StartAsync ( ) . DefaultTimeout ( ) ;
13571356
13581357 var url = host . MakeUrl ( scheme ) ;
13591358
13601359 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 ) ;
13631363
13641364 var request = CreateRequestMessage ( HttpMethod . Get , url , content : null ) ;
13651365 // The default size limit is 32kb.
13661366 for ( var i = 0 ; i < 33 ; i ++ )
13671367 {
13681368 request . Headers . Add ( "header" + i , oneKbString + i ) ;
13691369 }
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 ) ;
13721372
1373- Assert . Equal ( HttpStatusCode . RequestHeaderFieldsTooLarge , response . StatusCode ) ;
1373+ await host . StopAsync ( ) . DefaultTimeout ( ) ;
13741374 }
13751375
13761376 [ Theory ]
0 commit comments