diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsNoInteractivityStartup.cs b/src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsNoInteractivityStartup.cs index 92fe46b53a3a..65adb091bbfd 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsNoInteractivityStartup.cs +++ b/src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsNoInteractivityStartup.cs @@ -64,7 +64,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) app.UseExceptionHandler("/Error", createScopeForErrors: true); } - reexecutionApp.UseStatusCodePagesWithReExecute("/not-found-reexecute", createScopeForErrors: true); + reexecutionApp.UseStatusCodePagesWithReExecute("/not-found-reexecute", createScopeForStatusCodePages: true); reexecutionApp.UseStaticFiles(); reexecutionApp.UseRouting(); RazorComponentEndpointsStartup.UseFakeAuthState(reexecutionApp); diff --git a/src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsStartup.cs b/src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsStartup.cs index 6ff528a5a0eb..7a8e554d424a 100644 --- a/src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsStartup.cs +++ b/src/Components/test/testassets/Components.TestServer/RazorComponentEndpointsStartup.cs @@ -103,7 +103,7 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env) await context.Response.WriteAsync("Triggered a 404 status code."); }); }); - reexecutionApp.UseStatusCodePagesWithReExecute("/not-found-reexecute", createScopeForErrors: true); + reexecutionApp.UseStatusCodePagesWithReExecute("/not-found-reexecute", createScopeForStatusCodePages: true); reexecutionApp.UseRouting(); reexecutionApp.UseAntiforgery(); diff --git a/src/Middleware/Diagnostics/src/PublicAPI.Unshipped.txt b/src/Middleware/Diagnostics/src/PublicAPI.Unshipped.txt index 158b0cf33ead..c18db3d5eee7 100644 --- a/src/Middleware/Diagnostics/src/PublicAPI.Unshipped.txt +++ b/src/Middleware/Diagnostics/src/PublicAPI.Unshipped.txt @@ -1,8 +1,8 @@ #nullable enable Microsoft.AspNetCore.Builder.ExceptionHandlerOptions.SuppressDiagnosticsCallback.get -> System.Func? Microsoft.AspNetCore.Builder.ExceptionHandlerOptions.SuppressDiagnosticsCallback.set -> void -Microsoft.AspNetCore.Builder.StatusCodePagesOptions.CreateScopeForErrors.get -> bool -Microsoft.AspNetCore.Builder.StatusCodePagesOptions.CreateScopeForErrors.set -> void +Microsoft.AspNetCore.Builder.StatusCodePagesOptions.CreateScopeForStatusCodePages.get -> bool +Microsoft.AspNetCore.Builder.StatusCodePagesOptions.CreateScopeForStatusCodePages.set -> void Microsoft.AspNetCore.Diagnostics.ExceptionHandledType Microsoft.AspNetCore.Diagnostics.ExceptionHandledType.ExceptionHandlerDelegate = 3 -> Microsoft.AspNetCore.Diagnostics.ExceptionHandledType Microsoft.AspNetCore.Diagnostics.ExceptionHandledType.ExceptionHandlerService = 1 -> Microsoft.AspNetCore.Diagnostics.ExceptionHandledType @@ -17,4 +17,6 @@ Microsoft.AspNetCore.Diagnostics.ExceptionHandlerSuppressDiagnosticsContext.Exce Microsoft.AspNetCore.Diagnostics.ExceptionHandlerSuppressDiagnosticsContext.ExceptionHandlerSuppressDiagnosticsContext() -> void Microsoft.AspNetCore.Diagnostics.ExceptionHandlerSuppressDiagnosticsContext.HttpContext.get -> Microsoft.AspNetCore.Http.HttpContext! Microsoft.AspNetCore.Diagnostics.ExceptionHandlerSuppressDiagnosticsContext.HttpContext.init -> void -static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, string! pathFormat, bool createScopeForErrors, string? queryFormat = null) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, string! pathFormat, string? queryFormat = null, bool createScopeForStatusCodePages = false) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +*REMOVED*static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, string! pathFormat, string? queryFormat = null) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! +static Microsoft.AspNetCore.Builder.StatusCodePagesExtensions.UseStatusCodePagesWithReExecute(this Microsoft.AspNetCore.Builder.IApplicationBuilder! app, string! pathFormat, string! queryFormat) -> Microsoft.AspNetCore.Builder.IApplicationBuilder! \ No newline at end of file diff --git a/src/Middleware/Diagnostics/src/StatusCodePage/StatusCodePagesExtensions.cs b/src/Middleware/Diagnostics/src/StatusCodePage/StatusCodePagesExtensions.cs index 952753c69830..b6d760efcdd4 100644 --- a/src/Middleware/Diagnostics/src/StatusCodePage/StatusCodePagesExtensions.cs +++ b/src/Middleware/Diagnostics/src/StatusCodePage/StatusCodePagesExtensions.cs @@ -144,7 +144,7 @@ public static IApplicationBuilder UseStatusCodePages(this IApplicationBuilder ap public static IApplicationBuilder UseStatusCodePagesWithReExecute( this IApplicationBuilder app, string pathFormat, - string? queryFormat = null) + string queryFormat) { ArgumentNullException.ThrowIfNull(app); @@ -168,15 +168,15 @@ public static IApplicationBuilder UseStatusCodePagesWithReExecute( /// /// /// - /// Whether or not to create a new scope. /// + /// Whether or not to create a new scope. /// [SuppressMessage("ApiDesign", "RS0026:Do not add multiple overloads with optional parameters", Justification = "Required to maintain compatibility")] public static IApplicationBuilder UseStatusCodePagesWithReExecute( this IApplicationBuilder app, string pathFormat, - bool createScopeForErrors, - string? queryFormat = null) + string? queryFormat = null, + bool createScopeForStatusCodePages = false) { ArgumentNullException.ThrowIfNull(app); @@ -190,7 +190,7 @@ public static IApplicationBuilder UseStatusCodePagesWithReExecute( Options.Create(new StatusCodePagesOptions() { HandleAsync = CreateHandler(pathFormat, queryFormat, newNext), - CreateScopeForErrors = createScopeForErrors, + CreateScopeForStatusCodePages = createScopeForStatusCodePages, PathFormat = pathFormat })).Invoke; }); @@ -199,7 +199,7 @@ public static IApplicationBuilder UseStatusCodePagesWithReExecute( var options = new StatusCodePagesOptions { HandleAsync = CreateHandler(pathFormat, queryFormat), - CreateScopeForErrors = createScopeForErrors, + CreateScopeForStatusCodePages = createScopeForStatusCodePages, PathFormat = pathFormat }; var wrappedOptions = new OptionsWrapper(options); @@ -222,8 +222,8 @@ private static Func CreateHandler(string pathFormat, st var originalQueryString = context.HttpContext.Request.QueryString; var routeValuesFeature = context.HttpContext.Features.Get(); - var oldScope = context.Options.CreateScopeForErrors ? context.HttpContext.RequestServices : null; - await using AsyncServiceScope? scope = context.Options.CreateScopeForErrors + var oldScope = context.Options.CreateScopeForStatusCodePages ? context.HttpContext.RequestServices : null; + await using AsyncServiceScope? scope = context.Options.CreateScopeForStatusCodePages ? context.HttpContext.RequestServices.GetRequiredService().CreateAsyncScope() : null; diff --git a/src/Middleware/Diagnostics/src/StatusCodePage/StatusCodePagesOptions.cs b/src/Middleware/Diagnostics/src/StatusCodePage/StatusCodePagesOptions.cs index 95ff38eed8d5..9e91cbdef915 100644 --- a/src/Middleware/Diagnostics/src/StatusCodePage/StatusCodePagesOptions.cs +++ b/src/Middleware/Diagnostics/src/StatusCodePage/StatusCodePagesOptions.cs @@ -61,7 +61,7 @@ private static string BuildResponseBody(int httpStatusCode) /// replace it on when re-executing the request. /// /// The default value is . - public bool CreateScopeForErrors { get; set; } + public bool CreateScopeForStatusCodePages { get; set; } internal string? PathFormat { get; set; } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Program.Main.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Program.Main.cs index 1f3b4d5a0c01..be71c6ad04dd 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Program.Main.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Program.Main.cs @@ -107,8 +107,6 @@ public static void Main(string[] args) #endif } - app.UseStatusCodePagesWithReExecute("/not-found", createScopeForErrors: true); - #if (HasHttpsProfile) app.UseHttpsRedirection(); diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Program.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Program.cs index b2df4510a6de..c325a1f788a6 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Program.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorWeb-CSharp/BlazorWebCSharp.1/Program.cs @@ -100,7 +100,6 @@ app.UseHsts(); #endif } -app.UseStatusCodePagesWithReExecute("/not-found", createScopeForErrors: true); #if (HasHttpsProfile) app.UseHttpsRedirection();