diff --git a/src/Servers/IIS/IIS/test/testassets/InProcessNewShimWebSite/InProcessNewShimWebSite.csproj b/src/Servers/IIS/IIS/test/testassets/InProcessNewShimWebSite/InProcessNewShimWebSite.csproj index f358dd93534e..0d70e739c0b5 100644 --- a/src/Servers/IIS/IIS/test/testassets/InProcessNewShimWebSite/InProcessNewShimWebSite.csproj +++ b/src/Servers/IIS/IIS/test/testassets/InProcessNewShimWebSite/InProcessNewShimWebSite.csproj @@ -2,7 +2,7 @@ - $(DefaultNetCoreTargetFramework) + $(DefaultNetCoreTargetFramework);$(NetMinimum) InProcessWebSite FORWARDCOMPAT false @@ -27,38 +27,25 @@ - - - - true - + + true + true + + + + + + + + + + + + + - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - diff --git a/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.WebSockets.cs b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.WebSockets.cs index c7d502039f55..c20897f57406 100644 --- a/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.WebSockets.cs +++ b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.WebSockets.cs @@ -62,7 +62,7 @@ private void WebSocketEcho(IApplicationBuilder app) { var ws = await Upgrade(context); #if FORWARDCOMPAT - var appLifetime = app.ApplicationServices.GetRequiredService(); + var appLifetime = app.ApplicationServices.GetRequiredService(); #else var appLifetime = app.ApplicationServices.GetRequiredService(); #endif @@ -95,6 +95,8 @@ private void WebSocketLifetimeEvents(IApplicationBuilder app) private void WebSocketUpgradeFails(IApplicationBuilder app) { + // Suppress false positive. https://github.com/dotnet/aspnetcore/issues/64173 +#pragma warning disable ASP0016 // The method used to create a RequestDelegate returns Task app.Run(async context => { var upgradeFeature = context.Features.Get(); @@ -105,6 +107,7 @@ private void WebSocketUpgradeFails(IApplicationBuilder app) throw new InvalidOperationException("Unexpected error from UpgradeAsync."); } }); +#pragma warning restore ASP0016 // The method used to create a RequestDelegate returns Task } #if !FORWARDCOMPAT diff --git a/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.cs b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.cs index 7588f67559ea..25188979df6b 100644 --- a/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.cs +++ b/src/Servers/IIS/IIS/test/testassets/InProcessWebSite/Startup.cs @@ -55,9 +55,9 @@ public void ConfigureServices(IServiceCollection serviceCollection) serviceCollection.AddHttpContextAccessor(); } #if FORWARDCOMPAT - private async Task ContentRootPath(HttpContext ctx) => await ctx.Response.WriteAsync(ctx.RequestServices.GetService().ContentRootPath); + private async Task ContentRootPath(HttpContext ctx) => await ctx.Response.WriteAsync(ctx.RequestServices.GetService().ContentRootPath); - private async Task WebRootPath(HttpContext ctx) => await ctx.Response.WriteAsync(ctx.RequestServices.GetService().WebRootPath); + private async Task WebRootPath(HttpContext ctx) => await ctx.Response.WriteAsync(ctx.RequestServices.GetService().WebRootPath); #else private async Task ContentRootPath(HttpContext ctx) => await ctx.Response.WriteAsync(ctx.RequestServices.GetService().ContentRootPath); @@ -175,7 +175,7 @@ public async Task WaitingRequestCount(HttpContext context) public Task CreateFile(HttpContext context) { #if FORWARDCOMPAT - var hostingEnv = context.RequestServices.GetService(); + var hostingEnv = context.RequestServices.GetService(); #else var hostingEnv = context.RequestServices.GetService(); #endif @@ -474,6 +474,8 @@ private Task TestRequestHeaders(HttpContext ctx) return ctx.Response.WriteAsync($"Failure: '{headerName}' TryGetValue"); } + // ASP0019 recommends using Append or the indexer over Add, because it throws, but we're testing that behavior here. +#pragma warning disable ASP0019 // Use IHeaderDictionary.Append or the indexer to append or set headers // Both default and StringValues.Empty should unset the header, allowing it to be added again. ArgumentException duplicateKeyException = null; ctx.Request.Headers.Add(headerName, "test"); @@ -492,6 +494,7 @@ private Task TestRequestHeaders(HttpContext ctx) duplicateKeyException = ex; ctx.Request.Headers[headerName] = default; } +#pragma warning restore ASP0019 // Use IHeaderDictionary.Append or the indexer to append or set headers if (duplicateKeyException is null) { @@ -597,7 +600,7 @@ private async Task WaitForAppToStartShuttingDown(HttpContext ctx) { await ctx.Response.WriteAsync("test1"); #if FORWARDCOMPAT - var lifetime = ctx.RequestServices.GetService(); + var lifetime = ctx.RequestServices.GetService(); #else var lifetime = ctx.RequestServices.GetService(); #endif @@ -680,8 +683,9 @@ private async Task ReadAndWriteEchoLines(HttpContext ctx) private async Task ReadAndWriteEchoLinesNoBuffering(HttpContext ctx) { #if FORWARDCOMPAT - var feature = ctx.Features.Get(); - feature.DisableResponseBuffering(); + var feature = ctx.Features.Get(); + feature.DisableBuffering(); + Assert.True(ctx.Request.CanHaveBody()); #else var feature = ctx.Features.Get(); feature.DisableBuffering(); @@ -993,7 +997,7 @@ private async Task Shutdown(HttpContext ctx) { await ctx.Response.WriteAsync("Shutting down"); #if FORWARDCOMPAT - ctx.RequestServices.GetService().StopApplication(); + ctx.RequestServices.GetService().StopApplication(); #else ctx.RequestServices.GetService().StopApplication(); #endif