diff --git a/eng/targets/Wix.Common.props b/eng/targets/Wix.Common.props
index 9a29437eb2e5..d6095b8aa1b6 100644
--- a/eng/targets/Wix.Common.props
+++ b/eng/targets/Wix.Common.props
@@ -4,7 +4,7 @@
2.0
3.14
- 3.14.0-dotnet
+ 1.0.0-v3.14.0.4118
@@ -20,7 +20,7 @@
-
+
diff --git a/eng/tools/RepoTasks/RepoTasks.csproj b/eng/tools/RepoTasks/RepoTasks.csproj
index 67e01850f836..7f22280a20c7 100644
--- a/eng/tools/RepoTasks/RepoTasks.csproj
+++ b/eng/tools/RepoTasks/RepoTasks.csproj
@@ -26,7 +26,7 @@
-
+
diff --git a/src/Http/Http.Results/src/PublicAPI.Unshipped.txt b/src/Http/Http.Results/src/PublicAPI.Unshipped.txt
index 96ce109da59d..7eff16008f12 100644
--- a/src/Http/Http.Results/src/PublicAPI.Unshipped.txt
+++ b/src/Http/Http.Results/src/PublicAPI.Unshipped.txt
@@ -20,7 +20,8 @@ static Microsoft.AspNetCore.Http.Results.LocalRedirect(string! localUrl, bool pe
static Microsoft.AspNetCore.Http.Results.NoContent() -> Microsoft.AspNetCore.Http.IResult!
static Microsoft.AspNetCore.Http.Results.NotFound(object? value = null) -> Microsoft.AspNetCore.Http.IResult!
static Microsoft.AspNetCore.Http.Results.Ok(object? value = null) -> Microsoft.AspNetCore.Http.IResult!
-static Microsoft.AspNetCore.Http.Results.Problem(string? detail = null, string? instance = null, int? statusCode = null, string? title = null, string? type = null) -> Microsoft.AspNetCore.Http.IResult!
+static Microsoft.AspNetCore.Http.Results.Problem(string? detail = null, string? instance = null, int? statusCode = null, string? title = null, string? type = null, System.Collections.Generic.IDictionary? extensions = null) -> Microsoft.AspNetCore.Http.IResult!
+static Microsoft.AspNetCore.Http.Results.Problem(Microsoft.AspNetCore.Mvc.ProblemDetails! problemDetails) -> Microsoft.AspNetCore.Http.IResult!
static Microsoft.AspNetCore.Http.Results.Redirect(string! url, bool permanent = false, bool preserveMethod = false) -> Microsoft.AspNetCore.Http.IResult!
static Microsoft.AspNetCore.Http.Results.RedirectToRoute(string? routeName = null, object? routeValues = null, bool permanent = false, bool preserveMethod = false, string? fragment = null) -> Microsoft.AspNetCore.Http.IResult!
static Microsoft.AspNetCore.Http.Results.SignIn(System.Security.Claims.ClaimsPrincipal! principal, Microsoft.AspNetCore.Authentication.AuthenticationProperties? properties = null, string? authenticationScheme = null) -> Microsoft.AspNetCore.Http.IResult!
@@ -30,6 +31,6 @@ static Microsoft.AspNetCore.Http.Results.Stream(System.IO.Stream! stream, string
static Microsoft.AspNetCore.Http.Results.Text(string! content, string? contentType = null, System.Text.Encoding? contentEncoding = null) -> Microsoft.AspNetCore.Http.IResult!
static Microsoft.AspNetCore.Http.Results.Unauthorized() -> Microsoft.AspNetCore.Http.IResult!
static Microsoft.AspNetCore.Http.Results.UnprocessableEntity(object? error = null) -> Microsoft.AspNetCore.Http.IResult!
-static Microsoft.AspNetCore.Http.Results.ValidationProblem(System.Collections.Generic.IDictionary! errors, string? detail = null, string? instance = null, int? statusCode = null, string? title = null, string? type = null) -> Microsoft.AspNetCore.Http.IResult!
+static Microsoft.AspNetCore.Http.Results.ValidationProblem(System.Collections.Generic.IDictionary! errors, string? detail = null, string? instance = null, int? statusCode = null, string? title = null, string? type = null, System.Collections.Generic.IDictionary? extensions = null) -> Microsoft.AspNetCore.Http.IResult!
static Microsoft.AspNetCore.Http.Results.Extensions.get -> Microsoft.AspNetCore.Http.IResultExtensions!
-Microsoft.AspNetCore.Http.IResultExtensions
\ No newline at end of file
+Microsoft.AspNetCore.Http.IResultExtensions
diff --git a/src/Http/Http.Results/src/Results.cs b/src/Http/Http.Results/src/Results.cs
index 15d4937e3a24..aa69b20ea4d9 100644
--- a/src/Http/Http.Results/src/Results.cs
+++ b/src/Http/Http.Results/src/Results.cs
@@ -471,13 +471,15 @@ public static IResult UnprocessableEntity(object? error = null)
/// The value for .
/// The value for .
/// The value for .
+ /// The value for .
/// The created for the response.
public static IResult Problem(
string? detail = null,
string? instance = null,
int? statusCode = null,
string? title = null,
- string? type = null)
+ string? type = null,
+ IDictionary? extensions = null)
{
var problemDetails = new ProblemDetails
{
@@ -485,9 +487,30 @@ public static IResult Problem(
Instance = instance,
Status = statusCode,
Title = title,
- Type = type
+ Type = type,
};
+ if (extensions is not null)
+ {
+ foreach (var extension in extensions)
+ {
+ problemDetails.Extensions.Add(extension);
+ }
+ }
+
+ return new ObjectResult(problemDetails)
+ {
+ ContentType = "application/problem+json",
+ };
+ }
+
+ ///
+ /// Produces a response.
+ ///
+ /// The object to produce a response from.
+ /// The created for the response.
+ public static IResult Problem(ProblemDetails problemDetails)
+ {
return new ObjectResult(problemDetails)
{
ContentType = "application/problem+json",
@@ -502,8 +525,9 @@ public static IResult Problem(
/// The value for .
/// The value for .
/// The status code.
- /// The value for .
+ /// The value for . Defaults to "One or more validation errors occurred."
/// The value for .
+ /// The value for .
/// The created for the response.
public static IResult ValidationProblem(
IDictionary errors,
@@ -511,16 +535,26 @@ public static IResult ValidationProblem(
string? instance = null,
int? statusCode = null,
string? title = null,
- string? type = null)
+ string? type = null,
+ IDictionary? extensions = null)
{
var problemDetails = new HttpValidationProblemDetails(errors)
{
Detail = detail,
Instance = instance,
- Title = title,
Type = type,
Status = statusCode,
};
+
+ problemDetails.Title = title ?? problemDetails.Title;
+
+ if (extensions is not null)
+ {
+ foreach (var extension in extensions)
+ {
+ problemDetails.Extensions.Add(extension);
+ }
+ }
return new ObjectResult(problemDetails)
{
diff --git a/src/Http/samples/MinimalSample/MinimalSample.csproj b/src/Http/samples/MinimalSample/MinimalSample.csproj
index 6b59d1446b9b..eea90b96520b 100644
--- a/src/Http/samples/MinimalSample/MinimalSample.csproj
+++ b/src/Http/samples/MinimalSample/MinimalSample.csproj
@@ -8,6 +8,8 @@
+
+
diff --git a/src/Http/samples/MinimalSample/Program.cs b/src/Http/samples/MinimalSample/Program.cs
index 5441e671a8f9..12b78a782467 100644
--- a/src/Http/samples/MinimalSample/Program.cs
+++ b/src/Http/samples/MinimalSample/Program.cs
@@ -1,9 +1,7 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
-using System;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.Extensions.Hosting;
+using Microsoft.AspNetCore.Mvc;
var app = WebApplication.Create(args);
@@ -13,12 +11,29 @@
}
string Plaintext() => "Hello, World!";
-app.MapGet("/plaintext", (Func)Plaintext);
+app.MapGet("/plaintext", Plaintext);
+
object Json() => new { message = "Hello, World!" };
-app.MapGet("/json", (Func
diff --git a/src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs b/src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs
index 0a008b0fd817..568115cced98 100644
--- a/src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs
+++ b/src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs
@@ -29,7 +29,9 @@ public static class WebHostBuilderKestrelExtensions
///
public static IWebHostBuilder UseKestrel(this IWebHostBuilder hostBuilder)
{
+#pragma warning disable CA2252 // Preview Features
hostBuilder.UseQuic();
+#pragma warning restore CA2252
return hostBuilder.ConfigureServices(services =>
{
// Don't override an already-configured transport
diff --git a/src/Servers/Kestrel/Kestrel/test/Microsoft.AspNetCore.Server.Kestrel.Tests.csproj b/src/Servers/Kestrel/Kestrel/test/Microsoft.AspNetCore.Server.Kestrel.Tests.csproj
index ce2dd9d90cff..1286a684ea95 100644
--- a/src/Servers/Kestrel/Kestrel/test/Microsoft.AspNetCore.Server.Kestrel.Tests.csproj
+++ b/src/Servers/Kestrel/Kestrel/test/Microsoft.AspNetCore.Server.Kestrel.Tests.csproj
@@ -2,6 +2,7 @@
$(DefaultNetCoreTargetFramework)
+ true
diff --git a/src/Servers/Kestrel/Transport.Libuv/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests.csproj b/src/Servers/Kestrel/Transport.Libuv/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests.csproj
index 433253cee1cd..94eadcf539cd 100644
--- a/src/Servers/Kestrel/Transport.Libuv/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests.csproj
+++ b/src/Servers/Kestrel/Transport.Libuv/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests.csproj
@@ -7,6 +7,7 @@
true
true
+ true
diff --git a/src/Servers/Kestrel/Transport.Quic/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj b/src/Servers/Kestrel/Transport.Quic/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj
index a1838ce726b8..145612775bf8 100644
--- a/src/Servers/Kestrel/Transport.Quic/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj
+++ b/src/Servers/Kestrel/Transport.Quic/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj
@@ -7,9 +7,10 @@
true
aspnetcore;kestrel
true
- CA1416;CS1591;CS0436;$(NoWarn)
+ CA1416;CS1591;CS0436;$(NoWarn)
false
enable
+ True
diff --git a/src/Servers/Kestrel/Transport.Quic/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.Tests.csproj b/src/Servers/Kestrel/Transport.Quic/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.Tests.csproj
index ca4fbc0ea84d..c0aca2c1111f 100644
--- a/src/Servers/Kestrel/Transport.Quic/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.Tests.csproj
+++ b/src/Servers/Kestrel/Transport.Quic/test/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.Tests.csproj
@@ -4,6 +4,7 @@
$(DefaultNetCoreTargetFramework)
true
true
+ true
diff --git a/src/Servers/Kestrel/perf/Microbenchmarks/Microsoft.AspNetCore.Server.Kestrel.Microbenchmarks.csproj b/src/Servers/Kestrel/perf/Microbenchmarks/Microsoft.AspNetCore.Server.Kestrel.Microbenchmarks.csproj
index f7bfa926cc67..1f946d12ff04 100644
--- a/src/Servers/Kestrel/perf/Microbenchmarks/Microsoft.AspNetCore.Server.Kestrel.Microbenchmarks.csproj
+++ b/src/Servers/Kestrel/perf/Microbenchmarks/Microsoft.AspNetCore.Server.Kestrel.Microbenchmarks.csproj
@@ -6,6 +6,7 @@
true
true
false
+ true
diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/InMemory.FunctionalTests.csproj b/src/Servers/Kestrel/test/InMemory.FunctionalTests/InMemory.FunctionalTests.csproj
index da4ffb2ae380..dfb01f84c5d8 100644
--- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/InMemory.FunctionalTests.csproj
+++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/InMemory.FunctionalTests.csproj
@@ -6,6 +6,7 @@
InMemory.FunctionalTests
true
$(DefineConstants);IS_FUNCTIONAL_TESTS
+ true
diff --git a/src/Servers/Kestrel/test/Interop.FunctionalTests/Interop.FunctionalTests.csproj b/src/Servers/Kestrel/test/Interop.FunctionalTests/Interop.FunctionalTests.csproj
index d904a168c6eb..a8da39e1dd98 100644
--- a/src/Servers/Kestrel/test/Interop.FunctionalTests/Interop.FunctionalTests.csproj
+++ b/src/Servers/Kestrel/test/Interop.FunctionalTests/Interop.FunctionalTests.csproj
@@ -8,6 +8,7 @@
false
true
true
+ true
diff --git a/src/Servers/Kestrel/test/Libuv.BindTests/Libuv.BindTests.csproj b/src/Servers/Kestrel/test/Libuv.BindTests/Libuv.BindTests.csproj
index 8874b5616433..b9597587bbfb 100644
--- a/src/Servers/Kestrel/test/Libuv.BindTests/Libuv.BindTests.csproj
+++ b/src/Servers/Kestrel/test/Libuv.BindTests/Libuv.BindTests.csproj
@@ -6,6 +6,7 @@
Libuv.BindTests
Windows.10.Arm64;Windows.10.Arm64.Open;Windows.10.Arm64v8;Windows.10.Arm64v8.Open
+ true
diff --git a/src/Servers/Kestrel/test/Libuv.FunctionalTests/Libuv.FunctionalTests.csproj b/src/Servers/Kestrel/test/Libuv.FunctionalTests/Libuv.FunctionalTests.csproj
index 428143af300d..f252a148f244 100644
--- a/src/Servers/Kestrel/test/Libuv.FunctionalTests/Libuv.FunctionalTests.csproj
+++ b/src/Servers/Kestrel/test/Libuv.FunctionalTests/Libuv.FunctionalTests.csproj
@@ -9,6 +9,7 @@
Libuv.FunctionalTests
Windows.10.Arm64;Windows.10.Arm64.Open;Windows.10.Arm64v8;Windows.10.Arm64v8.Open
+ true
diff --git a/src/Servers/Kestrel/test/Sockets.BindTests/Sockets.BindTests.csproj b/src/Servers/Kestrel/test/Sockets.BindTests/Sockets.BindTests.csproj
index 0f7576c452d9..2a79d6e43158 100644
--- a/src/Servers/Kestrel/test/Sockets.BindTests/Sockets.BindTests.csproj
+++ b/src/Servers/Kestrel/test/Sockets.BindTests/Sockets.BindTests.csproj
@@ -4,6 +4,7 @@
$(DefaultNetCoreTargetFramework)
true
Sockets.BindTests
+ true
diff --git a/src/Servers/Kestrel/test/Sockets.FunctionalTests/Sockets.FunctionalTests.csproj b/src/Servers/Kestrel/test/Sockets.FunctionalTests/Sockets.FunctionalTests.csproj
index d42ac6b661f8..f64638d9806f 100644
--- a/src/Servers/Kestrel/test/Sockets.FunctionalTests/Sockets.FunctionalTests.csproj
+++ b/src/Servers/Kestrel/test/Sockets.FunctionalTests/Sockets.FunctionalTests.csproj
@@ -6,6 +6,7 @@
$(DefineConstants);SOCKETS
true
Sockets.FunctionalTests
+ true