From 686ce02cc810cffc1559dc2eed4f1bb8bf77874c Mon Sep 17 00:00:00 2001 From: Nate McMaster Date: Thu, 20 Dec 2018 10:53:42 -0800 Subject: [PATCH 1/4] Remove code for building an analyzers package that never shipped (#6053) Microsoft.AspNetCore.Analyzers didn't ship in 2.1, and we don't have plans to every ship it in a 2.1.x release. --- build/SharedFx.targets | 9 --------- build/artifacts.props | 6 +----- ...spNetCore.Mvc.Analyzers.Experimental.csproj | 8 ++------ .../Microsoft.AspNetCore.Analyzers.csproj | 18 ------------------ 4 files changed, 3 insertions(+), 38 deletions(-) delete mode 100644 src/Packages/Microsoft.AspNetCore.Analyzers/Microsoft.AspNetCore.Analyzers.csproj diff --git a/build/SharedFx.targets b/build/SharedFx.targets index d75fbdee83..828b62606e 100644 --- a/build/SharedFx.targets +++ b/build/SharedFx.targets @@ -9,7 +9,6 @@ <_MetapackageProject Include="$(RepositoryRoot)src\Packages\Microsoft.AspNetCore.All\Microsoft.AspNetCore.All.csproj" /> <_MetapackageProject Include="$(RepositoryRoot)src\Packages\Microsoft.AspNetCore.App\Microsoft.AspNetCore.App.csproj" /> - <_MetapackageProject Include="$(RepositoryRoot)src\Packages\Microsoft.AspNetCore.Analyzers\Microsoft.AspNetCore.Analyzers.csproj" /> - - <_MetapackageBuilderProject Include="$(MSBuildProjectFullPath)"> - - MetapackageName=Microsoft.AspNetCore.Analyzers; - MetapackageReferenceType=Analyzer; - MetapackageDependencyVersionRangeType=Minimum - - false false - - false + false netstandard1.3 false false diff --git a/src/Packages/Microsoft.AspNetCore.Analyzers/Microsoft.AspNetCore.Analyzers.csproj b/src/Packages/Microsoft.AspNetCore.Analyzers/Microsoft.AspNetCore.Analyzers.csproj deleted file mode 100644 index a9f9071719..0000000000 --- a/src/Packages/Microsoft.AspNetCore.Analyzers/Microsoft.AspNetCore.Analyzers.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - false - false - netstandard2.0 - aspnetcore - Microsoft.AspNetCore.Analyzers - - $(ExperimentalVersionPrefix) - $(ExperimentalVersionSuffix) - $(ExperimentalPackageVersion) - false - - false - - - From efe9b95b14442f336519cf31c8649b0a658292ae Mon Sep 17 00:00:00 2001 From: Hao Kung Date: Thu, 20 Dec 2018 12:21:30 -0800 Subject: [PATCH 2/4] Improve cdn test reliability (#6044) --- .../Identity.Test/CdnScriptTaghelperTests.cs | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs b/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs index b9a65a320c..d9a6e57929 100644 --- a/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs +++ b/src/Identity/test/Identity.Test/CdnScriptTaghelperTests.cs @@ -7,6 +7,7 @@ using System.IO; using System.Net.Http; using System.Security.Cryptography; using System.Text.RegularExpressions; +using System.Threading; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; @@ -38,7 +39,7 @@ namespace Microsoft.AspNetCore.Identity.Test Assert.NotEmpty(scriptTags); var shasum = new Dictionary(StringComparer.OrdinalIgnoreCase); - using (var client = new HttpClient()) + using (var client = new HttpClient(new RetryHandler(new HttpClientHandler() { }))) { foreach (var script in scriptTags) { @@ -62,6 +63,25 @@ namespace Microsoft.AspNetCore.Identity.Test }); } + class RetryHandler : DelegatingHandler + { + public RetryHandler(HttpMessageHandler innerHandler) : base(innerHandler) { } + protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + HttpResponseMessage result = null; + for (var i = 0; i < 10; i++) + { + result = await base.SendAsync(request, cancellationToken); + if (result.IsSuccessStatusCode) + { + return result; + } + await Task.Delay(1000); + } + return result; + } + } + private struct ScriptTag { public string Src; From 7f17d095d824d5f69382f7b05f514a95b13cc970 Mon Sep 17 00:00:00 2001 From: Ajay Bhargav Baaskaran Date: Thu, 20 Dec 2018 16:27:32 -0800 Subject: [PATCH 3/4] Convert Mvc to use Reference (#6047) * Convert Mvc to use Reference * Use ProjectReference for test assets --- build/buildorder.props | 1 - build/dependencies.props | 7 + build/repo.props | 1 + build/submodules.props | 1 - eng/Baseline.Designer.props | 174 ++++++++++++++++++ eng/Baseline.xml | 16 ++ eng/Dependencies.props | 5 + eng/ProjectReferences.props | 19 ++ eng/targets/Packaging.targets | 12 ++ eng/targets/ResolveReferences.targets | 2 +- src/Mvc/.gitignore | 43 ----- src/Mvc/Directory.Build.props | 22 --- src/Mvc/Directory.Build.targets | 6 - src/Mvc/NuGetPackageVerifier.json | 7 - ...icrosoft.AspNetCore.Mvc.Performance.csproj | 9 +- src/Mvc/build/dependencies.props | 96 ---------- src/Mvc/build/repo.props | 17 -- src/Mvc/build/sources.props | 17 -- src/Mvc/samples/MvcSandbox/MvcSandbox.csproj | 17 +- src/Mvc/src/Directory.Build.props | 7 - ...crosoft.AspNetCore.Mvc.Abstractions.csproj | 6 +- ...pNetCore.Mvc.Analyzers.Experimental.csproj | 2 +- .../Microsoft.AspNetCore.Mvc.Analyzers.csproj | 2 +- ...icrosoft.AspNetCore.Mvc.ApiExplorer.csproj | 4 +- .../Microsoft.AspNetCore.Mvc.Core.csproj | 36 ++-- .../Microsoft.AspNetCore.Mvc.Cors.csproj | 4 +- ...soft.AspNetCore.Mvc.DataAnnotations.csproj | 6 +- ...soft.AspNetCore.Mvc.Formatters.Json.csproj | 4 +- ...osoft.AspNetCore.Mvc.Formatters.Xml.csproj | 2 +- ...crosoft.AspNetCore.Mvc.Localization.csproj | 8 +- .../Microsoft.AspNetCore.Mvc.Razor.csproj | 29 ++- ...Microsoft.AspNetCore.Mvc.RazorPages.csproj | 4 +- ...Microsoft.AspNetCore.Mvc.TagHelpers.csproj | 12 +- .../Microsoft.AspNetCore.Mvc.Testing.csproj | 4 +- ...crosoft.AspNetCore.Mvc.ViewFeatures.csproj | 20 +- ...oft.AspNetCore.Mvc.WebApiCompatShim.csproj | 8 +- .../Microsoft.AspNetCore.Mvc.csproj | 23 +-- src/Mvc/test/Directory.Build.props | 11 +- ...ft.AspNetCore.Mvc.Abstractions.Test.csproj | 6 +- ...ore.Mvc.Analyzers.Experimental.Test.csproj | 9 +- ...osoft.AspNetCore.Mvc.Analyzers.Test.csproj | 8 +- ...oft.AspNetCore.Mvc.ApiExplorer.Test.csproj | 4 +- .../Microsoft.AspNetCore.Mvc.Core.Test.csproj | 16 +- .../Microsoft.AspNetCore.Mvc.Cors.Test.csproj | 8 +- ...AspNetCore.Mvc.DataAnnotations.Test.csproj | 8 +- ...AspNetCore.Mvc.Formatters.Json.Test.csproj | 7 +- ....AspNetCore.Mvc.Formatters.Xml.Test.csproj | 6 +- ...soft.AspNetCore.Mvc.FunctionalTests.csproj | 14 +- ...oft.AspNetCore.Mvc.IntegrationTests.csproj | 8 +- ...ft.AspNetCore.Mvc.Localization.Test.csproj | 6 +- ...Microsoft.AspNetCore.Mvc.Razor.Test.csproj | 12 +- ...soft.AspNetCore.Mvc.RazorPages.Test.csproj | 12 +- ...soft.AspNetCore.Mvc.TagHelpers.Test.csproj | 14 +- .../Microsoft.AspNetCore.Mvc.Test.csproj | 10 +- ...Microsoft.AspNetCore.Mvc.TestCommon.csproj | 19 +- ...pNetCore.Mvc.TestDiagnosticListener.csproj | 4 +- ...ft.AspNetCore.Mvc.ViewFeatures.Test.csproj | 10 +- ...AspNetCore.Mvc.WebApiCompatShimTest.csproj | 10 +- .../ApiExplorerWebSite.csproj | 11 +- .../ApplicationModelWebSite.csproj | 9 +- .../WebSites/BasicWebSite/BasicWebSite.csproj | 21 ++- ...ControllersFromServicesClassLibrary.csproj | 3 +- .../ControllersFromServicesWebSite.csproj | 11 +- .../WebSites/CorsWebSite/CorsWebSite.csproj | 13 +- src/Mvc/test/WebSites/Directory.Build.props | 2 +- .../ErrorPageMiddlewareWebSite.csproj | 11 +- .../FSharpWebSite/FSharpWebSite.fsproj | 12 +- .../WebSites/FilesWebSite/FilesWebSite.csproj | 11 +- .../FormatterWebSite/FormatterWebSite.csproj | 11 +- .../HtmlGenerationWebSite.csproj | 9 +- .../RazorBuildWebSite.PrecompiledViews.csproj | 5 +- .../RazorBuildWebSite.Views.csproj | 5 +- .../RazorBuildWebSite.csproj | 13 +- ...PageExecutionInstrumentationWebSite.csproj | 11 +- .../RazorPagesClassLibrary.csproj | 7 +- .../RazorPagesWebSite.csproj | 11 +- .../WebSites/RazorWebSite/RazorWebSite.csproj | 13 +- .../RoutingWebSite/RoutingWebSite.csproj | 9 +- .../SecurityWebSite/SecurityWebSite.csproj | 11 +- .../SimpleWebSite/SimpleWebSite.csproj | 7 +- .../TagHelpersWebSite.csproj | 9 +- .../VersioningWebSite.csproj | 9 +- .../WebApiCompatShimWebSite.csproj | 11 +- .../XmlFormattersWebSite.csproj | 11 +- src/Mvc/version.props | 21 --- 85 files changed, 579 insertions(+), 553 deletions(-) delete mode 100644 src/Mvc/.gitignore delete mode 100644 src/Mvc/Directory.Build.props delete mode 100644 src/Mvc/Directory.Build.targets delete mode 100644 src/Mvc/NuGetPackageVerifier.json delete mode 100644 src/Mvc/build/dependencies.props delete mode 100644 src/Mvc/build/repo.props delete mode 100644 src/Mvc/build/sources.props delete mode 100644 src/Mvc/src/Directory.Build.props delete mode 100644 src/Mvc/version.props diff --git a/build/buildorder.props b/build/buildorder.props index 5a71a5701c..74e3caa853 100644 --- a/build/buildorder.props +++ b/build/buildorder.props @@ -8,7 +8,6 @@ - diff --git a/build/dependencies.props b/build/dependencies.props index c46766b7af..5a3b3c442c 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -79,6 +79,13 @@ 2.1.1 2.1.1 + + 2.1.1 + 2.1.1 + 2.1.1 + 2.1.1 + 2.1.1 + 2.1.1 2.1.1 diff --git a/build/repo.props b/build/repo.props index c093551d2b..d7f3bc5693 100644 --- a/build/repo.props +++ b/build/repo.props @@ -81,6 +81,7 @@ $(RepositoryRoot)src\Tools\**\*.*proj; $(RepositoryRoot)src\Middleware\**\*.*proj; $(RepositoryRoot)src\Razor\**\*.*proj; + $(RepositoryRoot)src\Mvc\**\*.*proj; " Exclude=" @(ProjectToExclude); diff --git a/build/submodules.props b/build/submodules.props index 01c2e2ed0d..45210f9217 100644 --- a/build/submodules.props +++ b/build/submodules.props @@ -51,7 +51,6 @@ - diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index 4ea2a77ec1..c418f92be1 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -459,6 +459,162 @@ + + + 2.1.3 + + + + + + + + 2.1.3 + + + + + 2.1.3 + + + + + + + 2.1.3 + + + + + + + + + + + + + + + + + + + + 2.1.3 + + + + + + + + 2.1.3 + + + + + + + + + 2.1.3 + + + + + + + + 2.1.3 + + + + + + + 2.1.3 + + + + + + + + + + 2.1.3 + + + + + + + + + + + + + + + + + + + + + + + 2.1.3 + + + + + + + 2.1.3 + + + + + + + + + + + + 2.1.3 + + + + + + + + 2.1.3 + + + + + + + + + + + + + + 2.1.3 + + + + + + + 2.1.2 @@ -471,6 +627,24 @@ + + + 2.1.3 + + + + + + + + + + + + + + + 2.1.1 diff --git a/eng/Baseline.xml b/eng/Baseline.xml index 85f08dbe5e..ae2c6a254c 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -56,7 +56,23 @@ build of ASP.NET Core 2.1.x. Update this list when preparing for a new patch. + + + + + + + + + + + + + + + + diff --git a/eng/Dependencies.props b/eng/Dependencies.props index ac07dce98c..bf7171f343 100644 --- a/eng/Dependencies.props +++ b/eng/Dependencies.props @@ -29,6 +29,7 @@ and are generated based on the last package release. + @@ -46,6 +47,7 @@ and are generated based on the last package release. + @@ -59,7 +61,9 @@ and are generated based on the last package release. + + @@ -82,6 +86,7 @@ and are generated based on the last package release. + diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props index c72b620aa1..e50fe72bcb 100644 --- a/eng/ProjectReferences.props +++ b/eng/ProjectReferences.props @@ -95,5 +95,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/eng/targets/Packaging.targets b/eng/targets/Packaging.targets index 244f2c3ab7..ebb1ca541a 100644 --- a/eng/targets/Packaging.targets +++ b/eng/targets/Packaging.targets @@ -27,4 +27,16 @@ + + + + + <_ProjectPathWithVersion Include="$(MSBuildProjectFullPath)"> + $(MSBuildProjectName) + $(PackageVersion) + + + + diff --git a/eng/targets/ResolveReferences.targets b/eng/targets/ResolveReferences.targets index 3c55bf6f8f..c3d8cebbcb 100644 --- a/eng/targets/ResolveReferences.targets +++ b/eng/targets/ResolveReferences.targets @@ -85,7 +85,7 @@ <_ReferenceTemp Remove="@(_ReferenceTemp)" /> - + - - 0.9.9 - 0.10.13 - 2.1.3-rtm-15802 - 5.2.6 - 2.8.0 - 2.8.0 - 1.7.0 - 2.1.0 - 2.0.0 - 2.1.2 - 2.1.1 - 15.6.1 - 4.7.49 - 2.0.3 - 1.0.1 - 4.5.0 - 4.5.0 - 4.5.1 - 0.8.0 - 2.3.1 - 2.4.0-beta.1.build3945 - - - - - - - - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.2 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.0 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.0 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - 2.1.1 - - diff --git a/src/Mvc/build/repo.props b/src/Mvc/build/repo.props deleted file mode 100644 index d672599d6a..0000000000 --- a/src/Mvc/build/repo.props +++ /dev/null @@ -1,17 +0,0 @@ - - - - - true - - - - - - - - - - - - diff --git a/src/Mvc/build/sources.props b/src/Mvc/build/sources.props deleted file mode 100644 index 9215df9751..0000000000 --- a/src/Mvc/build/sources.props +++ /dev/null @@ -1,17 +0,0 @@ - - - - - $(DotNetRestoreSources) - - $(RestoreSources); - https://dotnet.myget.org/F/dotnet-core/api/v3/index.json; - https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json; - https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json; - - - $(RestoreSources); - https://api.nuget.org/v3/index.json; - - - diff --git a/src/Mvc/samples/MvcSandbox/MvcSandbox.csproj b/src/Mvc/samples/MvcSandbox/MvcSandbox.csproj index 116e4a2f66..21814517a3 100644 --- a/src/Mvc/samples/MvcSandbox/MvcSandbox.csproj +++ b/src/Mvc/samples/MvcSandbox/MvcSandbox.csproj @@ -10,18 +10,17 @@ - + - + - - - - - - - + + + + + + diff --git a/src/Mvc/src/Directory.Build.props b/src/Mvc/src/Directory.Build.props deleted file mode 100644 index 4b89a431e7..0000000000 --- a/src/Mvc/src/Directory.Build.props +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Abstractions/Microsoft.AspNetCore.Mvc.Abstractions.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Abstractions/Microsoft.AspNetCore.Mvc.Abstractions.csproj index 41cfcba32b..9fc6e08ada 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Abstractions/Microsoft.AspNetCore.Mvc.Abstractions.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Abstractions/Microsoft.AspNetCore.Mvc.Abstractions.csproj @@ -17,9 +17,9 @@ Microsoft.AspNetCore.Mvc.IActionResult - - - + + + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers.Experimental/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers.Experimental/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.csproj index 085b0ca0e3..fdbb59ea35 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers.Experimental/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers.Experimental/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers/Microsoft.AspNetCore.Mvc.Analyzers.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers/Microsoft.AspNetCore.Mvc.Analyzers.csproj index 310c88685a..69db971484 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers/Microsoft.AspNetCore.Mvc.Analyzers.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Analyzers/Microsoft.AspNetCore.Mvc.Analyzers.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.ApiExplorer/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.ApiExplorer/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj index 0e6afbe939..61ded75817 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.ApiExplorer/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.ApiExplorer/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj @@ -14,9 +14,9 @@ - + - + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Microsoft.AspNetCore.Mvc.Core.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Microsoft.AspNetCore.Mvc.Core.csproj index a54324689b..86bf66eef4 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Microsoft.AspNetCore.Mvc.Core.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Core/Microsoft.AspNetCore.Mvc.Core.csproj @@ -26,25 +26,25 @@ Microsoft.AspNetCore.Mvc.RouteAttribute - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Cors/Microsoft.AspNetCore.Mvc.Cors.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Cors/Microsoft.AspNetCore.Mvc.Cors.csproj index f6056e62e5..1ef6f1f061 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Cors/Microsoft.AspNetCore.Mvc.Cors.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Cors/Microsoft.AspNetCore.Mvc.Cors.csproj @@ -9,9 +9,9 @@ - + - + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj index 542474780e..b618acd532 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.DataAnnotations/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj @@ -14,9 +14,9 @@ - + - - + + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj index c57c948d9e..8a88bf31f3 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Json/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj @@ -13,8 +13,8 @@ - + - + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Xml/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Xml/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj index ebcf792899..4829840893 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Xml/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Formatters.Xml/Microsoft.AspNetCore.Mvc.Formatters.Xml.csproj @@ -14,6 +14,6 @@ - + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Localization/Microsoft.AspNetCore.Mvc.Localization.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Localization/Microsoft.AspNetCore.Mvc.Localization.csproj index c8d53a4da1..82b7691b9f 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Localization/Microsoft.AspNetCore.Mvc.Localization.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Localization/Microsoft.AspNetCore.Mvc.Localization.csproj @@ -16,11 +16,11 @@ Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer - + - - - + + + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Razor/Microsoft.AspNetCore.Mvc.Razor.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Razor/Microsoft.AspNetCore.Mvc.Razor.csproj index 2679f72275..438e9ef5ef 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Razor/Microsoft.AspNetCore.Mvc.Razor.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Razor/Microsoft.AspNetCore.Mvc.Razor.csproj @@ -17,19 +17,38 @@ - + - - - - + + + + + + + true diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.RazorPages/Microsoft.AspNetCore.Mvc.RazorPages.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.RazorPages/Microsoft.AspNetCore.Mvc.RazorPages.csproj index fd59e58282..49a49868d8 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.RazorPages/Microsoft.AspNetCore.Mvc.RazorPages.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.RazorPages/Microsoft.AspNetCore.Mvc.RazorPages.csproj @@ -16,9 +16,9 @@ - + - + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.TagHelpers/Microsoft.AspNetCore.Mvc.TagHelpers.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.TagHelpers/Microsoft.AspNetCore.Mvc.TagHelpers.csproj index c77fa2c2b4..1cd35a40b1 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.TagHelpers/Microsoft.AspNetCore.Mvc.TagHelpers.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.TagHelpers/Microsoft.AspNetCore.Mvc.TagHelpers.csproj @@ -14,13 +14,13 @@ - + - - - - - + + + + + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Testing/Microsoft.AspNetCore.Mvc.Testing.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Testing/Microsoft.AspNetCore.Mvc.Testing.csproj index cf0a443e19..8ad5b1a6e2 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.Testing/Microsoft.AspNetCore.Mvc.Testing.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.Testing/Microsoft.AspNetCore.Mvc.Testing.csproj @@ -9,11 +9,11 @@ - + - + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.ViewFeatures/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.ViewFeatures/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj index 1de4dbbd81..a952584c04 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.ViewFeatures/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.ViewFeatures/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj @@ -23,17 +23,17 @@ Microsoft.AspNetCore.Mvc.ViewComponent - - - + + + - - - - - - - + + + + + + + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc.WebApiCompatShim/Microsoft.AspNetCore.Mvc.WebApiCompatShim.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc.WebApiCompatShim/Microsoft.AspNetCore.Mvc.WebApiCompatShim.csproj index a40f7a0d15..686e3eaaa5 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc.WebApiCompatShim/Microsoft.AspNetCore.Mvc.WebApiCompatShim.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc.WebApiCompatShim/Microsoft.AspNetCore.Mvc.WebApiCompatShim.csproj @@ -15,11 +15,11 @@ System.Web.Http.ApiController - - + + - - + + diff --git a/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj b/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj index 76c448b86b..11964b7926 100644 --- a/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj +++ b/src/Mvc/src/Microsoft.AspNetCore.Mvc/Microsoft.AspNetCore.Mvc.csproj @@ -9,15 +9,15 @@ - - - - - - - - - + + + + + + + + + @@ -26,8 +26,9 @@ None - - + + + diff --git a/src/Mvc/test/Directory.Build.props b/src/Mvc/test/Directory.Build.props index ece617ffe1..c363930561 100644 --- a/src/Mvc/test/Directory.Build.props +++ b/src/Mvc/test/Directory.Build.props @@ -1,5 +1,5 @@ - + netcoreapp2.1 @@ -13,13 +13,4 @@ xUnit1026:$(WarningsNotAsErrors) $(MSBuildThisFileDirectory)MvcTests.ruleset - - - - - - - - - diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Abstractions.Test/Microsoft.AspNetCore.Mvc.Abstractions.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Abstractions.Test/Microsoft.AspNetCore.Mvc.Abstractions.Test.csproj index 1ca6c1dee7..7b11807ffd 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Abstractions.Test/Microsoft.AspNetCore.Mvc.Abstractions.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Abstractions.Test/Microsoft.AspNetCore.Mvc.Abstractions.Test.csproj @@ -5,10 +5,8 @@ - - - - + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.Test/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.Test/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.Test.csproj index b5d9571c75..8545746c70 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.Test/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.Test/Microsoft.AspNetCore.Mvc.Analyzers.Experimental.Test.csproj @@ -1,4 +1,4 @@ - + $(StandardTestTfms) @@ -11,10 +11,9 @@ - - - - + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Analyzers.Test/Microsoft.AspNetCore.Mvc.Analyzers.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Analyzers.Test/Microsoft.AspNetCore.Mvc.Analyzers.Test.csproj index 53db6da506..57a922a134 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Analyzers.Test/Microsoft.AspNetCore.Mvc.Analyzers.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Analyzers.Test/Microsoft.AspNetCore.Mvc.Analyzers.Test.csproj @@ -10,11 +10,9 @@ - - - - - + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.ApiExplorer.Test/Microsoft.AspNetCore.Mvc.ApiExplorer.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.ApiExplorer.Test/Microsoft.AspNetCore.Mvc.ApiExplorer.Test.csproj index 7a812822b1..7582aec310 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.ApiExplorer.Test/Microsoft.AspNetCore.Mvc.ApiExplorer.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.ApiExplorer.Test/Microsoft.AspNetCore.Mvc.ApiExplorer.Test.csproj @@ -5,7 +5,7 @@ - - + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Microsoft.AspNetCore.Mvc.Core.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Microsoft.AspNetCore.Mvc.Core.Test.csproj index 25368d8cc0..ac40695c6b 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Microsoft.AspNetCore.Mvc.Core.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Core.Test/Microsoft.AspNetCore.Mvc.Core.Test.csproj @@ -10,14 +10,14 @@ - - - + + + - - - - - + + + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Cors.Test/Microsoft.AspNetCore.Mvc.Cors.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Cors.Test/Microsoft.AspNetCore.Mvc.Cors.Test.csproj index f73ee9967c..63f4c2fd11 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Cors.Test/Microsoft.AspNetCore.Mvc.Cors.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Cors.Test/Microsoft.AspNetCore.Mvc.Cors.Test.csproj @@ -5,11 +5,11 @@ - - + + - - + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.DataAnnotations.Test/Microsoft.AspNetCore.Mvc.DataAnnotations.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.DataAnnotations.Test/Microsoft.AspNetCore.Mvc.DataAnnotations.Test.csproj index 84e189a38e..ce064070e7 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.DataAnnotations.Test/Microsoft.AspNetCore.Mvc.DataAnnotations.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.DataAnnotations.Test/Microsoft.AspNetCore.Mvc.DataAnnotations.Test.csproj @@ -5,11 +5,11 @@ - + - - - + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Formatters.Json.Test/Microsoft.AspNetCore.Mvc.Formatters.Json.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Formatters.Json.Test/Microsoft.AspNetCore.Mvc.Formatters.Json.Test.csproj index 4ace996ce7..6d91a68f77 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Formatters.Json.Test/Microsoft.AspNetCore.Mvc.Formatters.Json.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Formatters.Json.Test/Microsoft.AspNetCore.Mvc.Formatters.Json.Test.csproj @@ -5,11 +5,10 @@ - + - - - + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Formatters.Xml.Test/Microsoft.AspNetCore.Mvc.Formatters.Xml.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Formatters.Xml.Test/Microsoft.AspNetCore.Mvc.Formatters.Xml.Test.csproj index a02cf7ca47..ed8c1d3b24 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Formatters.Xml.Test/Microsoft.AspNetCore.Mvc.Formatters.Xml.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Formatters.Xml.Test/Microsoft.AspNetCore.Mvc.Formatters.Xml.Test.csproj @@ -5,10 +5,10 @@ - + - - + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj index 6fce319b2a..d7d4b0fc0e 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj @@ -29,7 +29,7 @@ - + @@ -53,11 +53,11 @@ - - - - - - + + + + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.IntegrationTests/Microsoft.AspNetCore.Mvc.IntegrationTests.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.IntegrationTests/Microsoft.AspNetCore.Mvc.IntegrationTests.csproj index 8e52e2a34f..ce1f9e74c5 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.IntegrationTests/Microsoft.AspNetCore.Mvc.IntegrationTests.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.IntegrationTests/Microsoft.AspNetCore.Mvc.IntegrationTests.csproj @@ -5,11 +5,11 @@ - - + + - - + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Localization.Test/Microsoft.AspNetCore.Mvc.Localization.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Localization.Test/Microsoft.AspNetCore.Mvc.Localization.Test.csproj index 1ca6c1dee7..7b11807ffd 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Localization.Test/Microsoft.AspNetCore.Mvc.Localization.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Localization.Test/Microsoft.AspNetCore.Mvc.Localization.Test.csproj @@ -5,10 +5,8 @@ - - - - + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Razor.Test/Microsoft.AspNetCore.Mvc.Razor.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Razor.Test/Microsoft.AspNetCore.Mvc.Razor.Test.csproj index fbafa2be5f..5b9bcbbf4a 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Razor.Test/Microsoft.AspNetCore.Mvc.Razor.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Razor.Test/Microsoft.AspNetCore.Mvc.Razor.Test.csproj @@ -12,13 +12,13 @@ - - - + + + - - - + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Microsoft.AspNetCore.Mvc.RazorPages.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Microsoft.AspNetCore.Mvc.RazorPages.Test.csproj index 26a80f2c7a..2636b0b65d 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Microsoft.AspNetCore.Mvc.RazorPages.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/Microsoft.AspNetCore.Mvc.RazorPages.Test.csproj @@ -5,13 +5,13 @@ - - - + + + - - - + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.TagHelpers.Test/Microsoft.AspNetCore.Mvc.TagHelpers.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.TagHelpers.Test/Microsoft.AspNetCore.Mvc.TagHelpers.Test.csproj index d9c1634c3c..03374ae290 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.TagHelpers.Test/Microsoft.AspNetCore.Mvc.TagHelpers.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.TagHelpers.Test/Microsoft.AspNetCore.Mvc.TagHelpers.Test.csproj @@ -5,13 +5,15 @@ - - + + - - - - + + + + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Test/Microsoft.AspNetCore.Mvc.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Test/Microsoft.AspNetCore.Mvc.Test.csproj index 90beaff56b..429926a3ed 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.Test/Microsoft.AspNetCore.Mvc.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.Test/Microsoft.AspNetCore.Mvc.Test.csproj @@ -5,11 +5,11 @@ - - + + - - - + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.TestCommon/Microsoft.AspNetCore.Mvc.TestCommon.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.TestCommon/Microsoft.AspNetCore.Mvc.TestCommon.csproj index 203c301faa..24c903d96b 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.TestCommon/Microsoft.AspNetCore.Mvc.TestCommon.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.TestCommon/Microsoft.AspNetCore.Mvc.TestCommon.csproj @@ -2,22 +2,25 @@ $(StandardTestTfms) + true + true - - + + - + - - - - - + + + + + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.TestDiagnosticListener/Microsoft.AspNetCore.Mvc.TestDiagnosticListener.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.TestDiagnosticListener/Microsoft.AspNetCore.Mvc.TestDiagnosticListener.csproj index 23a77e17a1..61b3336711 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.TestDiagnosticListener/Microsoft.AspNetCore.Mvc.TestDiagnosticListener.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.TestDiagnosticListener/Microsoft.AspNetCore.Mvc.TestDiagnosticListener.csproj @@ -2,9 +2,11 @@ $(StandardTestTfms) + true + true - + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test.csproj index f3dea58d26..1484b08a91 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test/Microsoft.AspNetCore.Mvc.ViewFeatures.Test.csproj @@ -5,11 +5,11 @@ - - - + + + - - + + diff --git a/src/Mvc/test/Microsoft.AspNetCore.Mvc.WebApiCompatShimTest/Microsoft.AspNetCore.Mvc.WebApiCompatShimTest.csproj b/src/Mvc/test/Microsoft.AspNetCore.Mvc.WebApiCompatShimTest/Microsoft.AspNetCore.Mvc.WebApiCompatShimTest.csproj index b10e11d8e7..ff02b34852 100644 --- a/src/Mvc/test/Microsoft.AspNetCore.Mvc.WebApiCompatShimTest/Microsoft.AspNetCore.Mvc.WebApiCompatShimTest.csproj +++ b/src/Mvc/test/Microsoft.AspNetCore.Mvc.WebApiCompatShimTest/Microsoft.AspNetCore.Mvc.WebApiCompatShimTest.csproj @@ -4,15 +4,15 @@ $(StandardTestTfms) true true + true - - + + - - - + + diff --git a/src/Mvc/test/WebSites/ApiExplorerWebSite/ApiExplorerWebSite.csproj b/src/Mvc/test/WebSites/ApiExplorerWebSite/ApiExplorerWebSite.csproj index 239ce99f78..d05aa847d8 100644 --- a/src/Mvc/test/WebSites/ApiExplorerWebSite/ApiExplorerWebSite.csproj +++ b/src/Mvc/test/WebSites/ApiExplorerWebSite/ApiExplorerWebSite.csproj @@ -2,14 +2,15 @@ $(StandardTestWebsiteTfms) + true - - + + - - - + + + diff --git a/src/Mvc/test/WebSites/ApplicationModelWebSite/ApplicationModelWebSite.csproj b/src/Mvc/test/WebSites/ApplicationModelWebSite/ApplicationModelWebSite.csproj index cfda2f9c35..17fa586476 100644 --- a/src/Mvc/test/WebSites/ApplicationModelWebSite/ApplicationModelWebSite.csproj +++ b/src/Mvc/test/WebSites/ApplicationModelWebSite/ApplicationModelWebSite.csproj @@ -2,13 +2,14 @@ $(StandardTestWebsiteTfms) + true - + - - - + + + diff --git a/src/Mvc/test/WebSites/BasicWebSite/BasicWebSite.csproj b/src/Mvc/test/WebSites/BasicWebSite/BasicWebSite.csproj index 55879651a0..66fb0d1df5 100644 --- a/src/Mvc/test/WebSites/BasicWebSite/BasicWebSite.csproj +++ b/src/Mvc/test/WebSites/BasicWebSite/BasicWebSite.csproj @@ -2,19 +2,20 @@ $(StandardTestWebsiteTfms) + true - - + + - - - - - - - - + + + + + + + + diff --git a/src/Mvc/test/WebSites/ControllersFromServicesClassLibrary/ControllersFromServicesClassLibrary.csproj b/src/Mvc/test/WebSites/ControllersFromServicesClassLibrary/ControllersFromServicesClassLibrary.csproj index 8d0ce3d813..e631ded388 100644 --- a/src/Mvc/test/WebSites/ControllersFromServicesClassLibrary/ControllersFromServicesClassLibrary.csproj +++ b/src/Mvc/test/WebSites/ControllersFromServicesClassLibrary/ControllersFromServicesClassLibrary.csproj @@ -3,9 +3,10 @@ $(StandardTestWebsiteTfms) true + true - + diff --git a/src/Mvc/test/WebSites/ControllersFromServicesWebSite/ControllersFromServicesWebSite.csproj b/src/Mvc/test/WebSites/ControllersFromServicesWebSite/ControllersFromServicesWebSite.csproj index 24bd4fa3f8..2e5ef45199 100644 --- a/src/Mvc/test/WebSites/ControllersFromServicesWebSite/ControllersFromServicesWebSite.csproj +++ b/src/Mvc/test/WebSites/ControllersFromServicesWebSite/ControllersFromServicesWebSite.csproj @@ -2,15 +2,16 @@ $(StandardTestWebsiteTfms) + true - + - - - - + + + + diff --git a/src/Mvc/test/WebSites/CorsWebSite/CorsWebSite.csproj b/src/Mvc/test/WebSites/CorsWebSite/CorsWebSite.csproj index 7cb00b8351..3361268a60 100644 --- a/src/Mvc/test/WebSites/CorsWebSite/CorsWebSite.csproj +++ b/src/Mvc/test/WebSites/CorsWebSite/CorsWebSite.csproj @@ -2,15 +2,16 @@ $(StandardTestWebsiteTfms) + true - - + + - - - - + + + + diff --git a/src/Mvc/test/WebSites/Directory.Build.props b/src/Mvc/test/WebSites/Directory.Build.props index ed8c546e2a..6487d6a43e 100644 --- a/src/Mvc/test/WebSites/Directory.Build.props +++ b/src/Mvc/test/WebSites/Directory.Build.props @@ -1,6 +1,6 @@ - + netcoreapp2.1 diff --git a/src/Mvc/test/WebSites/ErrorPageMiddlewareWebSite/ErrorPageMiddlewareWebSite.csproj b/src/Mvc/test/WebSites/ErrorPageMiddlewareWebSite/ErrorPageMiddlewareWebSite.csproj index 52dc3bc28e..c34f7d787c 100644 --- a/src/Mvc/test/WebSites/ErrorPageMiddlewareWebSite/ErrorPageMiddlewareWebSite.csproj +++ b/src/Mvc/test/WebSites/ErrorPageMiddlewareWebSite/ErrorPageMiddlewareWebSite.csproj @@ -5,14 +5,15 @@ full false + true - + - - - - + + + + diff --git a/src/Mvc/test/WebSites/FSharpWebSite/FSharpWebSite.fsproj b/src/Mvc/test/WebSites/FSharpWebSite/FSharpWebSite.fsproj index 357a7fb863..7ef6adc56d 100644 --- a/src/Mvc/test/WebSites/FSharpWebSite/FSharpWebSite.fsproj +++ b/src/Mvc/test/WebSites/FSharpWebSite/FSharpWebSite.fsproj @@ -2,6 +2,8 @@ $(StandardTestWebsiteTfms) + false + true @@ -11,12 +13,12 @@ - + - - - - + + + + diff --git a/src/Mvc/test/WebSites/FilesWebSite/FilesWebSite.csproj b/src/Mvc/test/WebSites/FilesWebSite/FilesWebSite.csproj index c8f6df1d20..e058430689 100644 --- a/src/Mvc/test/WebSites/FilesWebSite/FilesWebSite.csproj +++ b/src/Mvc/test/WebSites/FilesWebSite/FilesWebSite.csproj @@ -2,6 +2,7 @@ $(StandardTestWebsiteTfms) + true @@ -10,11 +11,11 @@ - + - - - - + + + + diff --git a/src/Mvc/test/WebSites/FormatterWebSite/FormatterWebSite.csproj b/src/Mvc/test/WebSites/FormatterWebSite/FormatterWebSite.csproj index 239ce99f78..d05aa847d8 100644 --- a/src/Mvc/test/WebSites/FormatterWebSite/FormatterWebSite.csproj +++ b/src/Mvc/test/WebSites/FormatterWebSite/FormatterWebSite.csproj @@ -2,14 +2,15 @@ $(StandardTestWebsiteTfms) + true - - + + - - - + + + diff --git a/src/Mvc/test/WebSites/HtmlGenerationWebSite/HtmlGenerationWebSite.csproj b/src/Mvc/test/WebSites/HtmlGenerationWebSite/HtmlGenerationWebSite.csproj index cfda2f9c35..17fa586476 100644 --- a/src/Mvc/test/WebSites/HtmlGenerationWebSite/HtmlGenerationWebSite.csproj +++ b/src/Mvc/test/WebSites/HtmlGenerationWebSite/HtmlGenerationWebSite.csproj @@ -2,13 +2,14 @@ $(StandardTestWebsiteTfms) + true - + - - - + + + diff --git a/src/Mvc/test/WebSites/RazorBuildWebSite.PrecompiledViews/RazorBuildWebSite.PrecompiledViews.csproj b/src/Mvc/test/WebSites/RazorBuildWebSite.PrecompiledViews/RazorBuildWebSite.PrecompiledViews.csproj index 73549c2142..5852d7d33c 100644 --- a/src/Mvc/test/WebSites/RazorBuildWebSite.PrecompiledViews/RazorBuildWebSite.PrecompiledViews.csproj +++ b/src/Mvc/test/WebSites/RazorBuildWebSite.PrecompiledViews/RazorBuildWebSite.PrecompiledViews.csproj @@ -1,12 +1,13 @@ - + $(StandardTestWebsiteTfms) $(DefineConstants) + true - + diff --git a/src/Mvc/test/WebSites/RazorBuildWebSite.Views/RazorBuildWebSite.Views.csproj b/src/Mvc/test/WebSites/RazorBuildWebSite.Views/RazorBuildWebSite.Views.csproj index 73549c2142..5852d7d33c 100644 --- a/src/Mvc/test/WebSites/RazorBuildWebSite.Views/RazorBuildWebSite.Views.csproj +++ b/src/Mvc/test/WebSites/RazorBuildWebSite.Views/RazorBuildWebSite.Views.csproj @@ -1,12 +1,13 @@ - + $(StandardTestWebsiteTfms) $(DefineConstants) + true - + diff --git a/src/Mvc/test/WebSites/RazorBuildWebSite/RazorBuildWebSite.csproj b/src/Mvc/test/WebSites/RazorBuildWebSite/RazorBuildWebSite.csproj index ecf6d47b77..40e5f7fe2e 100644 --- a/src/Mvc/test/WebSites/RazorBuildWebSite/RazorBuildWebSite.csproj +++ b/src/Mvc/test/WebSites/RazorBuildWebSite/RazorBuildWebSite.csproj @@ -1,23 +1,24 @@ - + $(StandardTestWebsiteTfms) $(DefineConstants) false + true - + - - - - + + + + false + true - - - + diff --git a/src/Mvc/test/WebSites/RazorPagesWebSite/RazorPagesWebSite.csproj b/src/Mvc/test/WebSites/RazorPagesWebSite/RazorPagesWebSite.csproj index 3d83f2342f..fe22bad303 100644 --- a/src/Mvc/test/WebSites/RazorPagesWebSite/RazorPagesWebSite.csproj +++ b/src/Mvc/test/WebSites/RazorPagesWebSite/RazorPagesWebSite.csproj @@ -2,15 +2,16 @@ $(StandardTestWebsiteTfms) + true - + - - - - + + + + diff --git a/src/Mvc/test/WebSites/RazorWebSite/RazorWebSite.csproj b/src/Mvc/test/WebSites/RazorWebSite/RazorWebSite.csproj index 4c8140635e..ea8f3aa271 100644 --- a/src/Mvc/test/WebSites/RazorWebSite/RazorWebSite.csproj +++ b/src/Mvc/test/WebSites/RazorWebSite/RazorWebSite.csproj @@ -3,6 +3,7 @@ $(StandardTestWebsiteTfms) $(DefineConstants);NETCOREAPP2_0_CUSTOM_DEFINE + true @@ -10,12 +11,12 @@ - + - - - - - + + + + + diff --git a/src/Mvc/test/WebSites/RoutingWebSite/RoutingWebSite.csproj b/src/Mvc/test/WebSites/RoutingWebSite/RoutingWebSite.csproj index cfda2f9c35..17fa586476 100644 --- a/src/Mvc/test/WebSites/RoutingWebSite/RoutingWebSite.csproj +++ b/src/Mvc/test/WebSites/RoutingWebSite/RoutingWebSite.csproj @@ -2,13 +2,14 @@ $(StandardTestWebsiteTfms) + true - + - - - + + + diff --git a/src/Mvc/test/WebSites/SecurityWebSite/SecurityWebSite.csproj b/src/Mvc/test/WebSites/SecurityWebSite/SecurityWebSite.csproj index 5486e54caf..4670064597 100644 --- a/src/Mvc/test/WebSites/SecurityWebSite/SecurityWebSite.csproj +++ b/src/Mvc/test/WebSites/SecurityWebSite/SecurityWebSite.csproj @@ -2,14 +2,15 @@ $(StandardTestWebsiteTfms) + true - + - - - - + + + + diff --git a/src/Mvc/test/WebSites/SimpleWebSite/SimpleWebSite.csproj b/src/Mvc/test/WebSites/SimpleWebSite/SimpleWebSite.csproj index 9989c770c6..701d552c4a 100644 --- a/src/Mvc/test/WebSites/SimpleWebSite/SimpleWebSite.csproj +++ b/src/Mvc/test/WebSites/SimpleWebSite/SimpleWebSite.csproj @@ -2,12 +2,13 @@ $(StandardTestWebsiteTfms) + true - + - - + + diff --git a/src/Mvc/test/WebSites/TagHelpersWebSite/TagHelpersWebSite.csproj b/src/Mvc/test/WebSites/TagHelpersWebSite/TagHelpersWebSite.csproj index 991903c25b..0bb43dbc7c 100644 --- a/src/Mvc/test/WebSites/TagHelpersWebSite/TagHelpersWebSite.csproj +++ b/src/Mvc/test/WebSites/TagHelpersWebSite/TagHelpersWebSite.csproj @@ -3,13 +3,14 @@ $(StandardTestWebsiteTfms) true + true - + - - - + + + diff --git a/src/Mvc/test/WebSites/VersioningWebSite/VersioningWebSite.csproj b/src/Mvc/test/WebSites/VersioningWebSite/VersioningWebSite.csproj index cfda2f9c35..17fa586476 100644 --- a/src/Mvc/test/WebSites/VersioningWebSite/VersioningWebSite.csproj +++ b/src/Mvc/test/WebSites/VersioningWebSite/VersioningWebSite.csproj @@ -2,13 +2,14 @@ $(StandardTestWebsiteTfms) + true - + - - - + + + diff --git a/src/Mvc/test/WebSites/WebApiCompatShimWebSite/WebApiCompatShimWebSite.csproj b/src/Mvc/test/WebSites/WebApiCompatShimWebSite/WebApiCompatShimWebSite.csproj index fd4dd53d70..8165cb031c 100644 --- a/src/Mvc/test/WebSites/WebApiCompatShimWebSite/WebApiCompatShimWebSite.csproj +++ b/src/Mvc/test/WebSites/WebApiCompatShimWebSite/WebApiCompatShimWebSite.csproj @@ -2,14 +2,15 @@ $(StandardTestWebsiteTfms) + true - - + + - - - + + + diff --git a/src/Mvc/test/WebSites/XmlFormattersWebSite/XmlFormattersWebSite.csproj b/src/Mvc/test/WebSites/XmlFormattersWebSite/XmlFormattersWebSite.csproj index e8cef0d108..eb218807a1 100644 --- a/src/Mvc/test/WebSites/XmlFormattersWebSite/XmlFormattersWebSite.csproj +++ b/src/Mvc/test/WebSites/XmlFormattersWebSite/XmlFormattersWebSite.csproj @@ -1,14 +1,15 @@  $(StandardTestWebsiteTfms) + true - - + + - - - + + + diff --git a/src/Mvc/version.props b/src/Mvc/version.props deleted file mode 100644 index 5f1cf38faa..0000000000 --- a/src/Mvc/version.props +++ /dev/null @@ -1,21 +0,0 @@ - - - 2.1.3 - rtm - t000 - a- - - $(VersionPrefix) - $(VersionPrefix)-$(VersionSuffix)-final - $(FeatureBranchVersionPrefix)$(VersionSuffix)-$([System.Text.RegularExpressions.Regex]::Replace('$(FeatureBranchVersionSuffix)', '[^\w-]', '-')) - $(VersionSuffix)-$(BuildNumber) - - 0.1.3 - rtm - - $(ExperimentalVersionPrefix) - $(ExperimentalVersionPrefix)-$(ExperimentalVersionSuffix)-final - $(FeatureBranchVersionPrefix)$(ExperimentalVersionSuffix)-$([System.Text.RegularExpressions.Regex]::Replace('$(FeatureBranchVersionSuffix)', '[^\w-]', '-')) - $(ExperimentalVersionSuffix)-$(BuildNumber) - - From f1b125d69f29fc2fa3ff7b38add95a20a4b5e594 Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Fri, 21 Dec 2018 11:02:18 -0800 Subject: [PATCH 4/4] Restore IISIntegration Unit test project (#6068) --- src/Servers/IIS/IISIntegration.NoV1.sln | 130 +++--- .../IISIntegration.Tests/IISExtensionTests.cs | 33 ++ .../IISMiddlewareTests.cs | 420 ++++++++++++++++++ ...NetCore.Server.IISIntegration.Tests.csproj | 17 + 4 files changed, 524 insertions(+), 76 deletions(-) create mode 100644 src/Servers/IIS/test/IISIntegration.Tests/IISExtensionTests.cs create mode 100644 src/Servers/IIS/test/IISIntegration.Tests/IISMiddlewareTests.cs create mode 100644 src/Servers/IIS/test/IISIntegration.Tests/MIcrosoft.AspNetCore.Server.IISIntegration.Tests.csproj diff --git a/src/Servers/IIS/IISIntegration.NoV1.sln b/src/Servers/IIS/IISIntegration.NoV1.sln index 1200436098..43cbf1fc02 100644 --- a/src/Servers/IIS/IISIntegration.NoV1.sln +++ b/src/Servers/IIS/IISIntegration.NoV1.sln @@ -30,8 +30,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server {46A8612B-418B-4D70-B3A7-A21DD0627473} = {46A8612B-418B-4D70-B3A7-A21DD0627473} EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration.Tests", "test\Microsoft.AspNetCore.Server.IISIntegration.Tests\Microsoft.AspNetCore.Server.IISIntegration.Tests.csproj", "{4106DB10-E09F-480E-9CE6-B39235512EE6}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{7E80C58E-9CC8-450C-8A8D-94FC76428150}" ProjectSection(SolutionItems) = preProject build\applicationhost.config = build\applicationhost.config @@ -54,8 +52,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IISExpress.FunctionalTests" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NativeIISSample", "samples\NativeIISSample\NativeIISSample.csproj", "{9BC4AFCB-325D-4C81-8228-8CF301CE2F97}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InProcessWebSite", "test\WebSites\InProcessWebSite\InProcessWebSite.csproj", "{679FA2A2-898B-4320-884E-C2D294A97CE1}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IIS", "src\Microsoft.AspNetCore.Server.IIS\Microsoft.AspNetCore.Server.IIS.csproj", "{46A8612B-418B-4D70-B3A7-A21DD0627473}" ProjectSection(ProjectDependencies) = postProject {EC82302F-D2F0-4727-99D1-EABC0DD9DC3B} = {EC82302F-D2F0-4727-99D1-EABC0DD9DC3B} @@ -64,11 +60,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server {D57EA297-6DC2-4BC0-8C91-334863327863} = {D57EA297-6DC2-4BC0-8C91-334863327863} EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StressTestWebSite", "test\WebSites\StressTestWebSite\StressTestWebSite.csproj", "{13FD8F12-FFBE-4D01-B4AC-444F2994B04F}" - ProjectSection(ProjectDependencies) = postProject - {46A8612B-418B-4D70-B3A7-A21DD0627473} = {46A8612B-418B-4D70-B3A7-A21DD0627473} - EndProjectSection -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebSites", "WebSites", "{744ACDC6-F6A0-4FF9-9421-F25C5F2DC520}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CommonLibTests", "test\CommonLibTests\CommonLibTests.vcxproj", "{1EAC8125-1765-4E2D-8CBE-56DC98A1C8C1}" @@ -81,8 +72,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CommonLib", "src\AspNetCore EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IISLib", "src\AspNetCoreModuleV2\IISLib\IISLib.vcxproj", "{09D9D1D6-2951-4E14-BC35-76A23CF9391A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OutOfProcessWebSite", "test\WebSites\OutOfProcessWebSite\OutOfProcessWebSite.csproj", "{42E60F88-E23F-417A-8143-0CCEC05E1D02}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarks", "benchmarks", "{622D35C9-627B-466E-8D15-752968CC79AF}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IIS.Performance", "benchmarks\IIS.Performance\IIS.Performance.csproj", "{48F46909-E76A-4788-BCE1-E543C0E140FE}" @@ -113,10 +102,16 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IIS.BackwardsCompatibility. EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IIS.ForwardsCompatibility.FunctionalTests", "test\IIS.ForwardsCompatibility.FunctionalTests\IIS.ForwardsCompatibility.FunctionalTests.csproj", "{D1EA5D99-28FD-4197-81DE-17098846B38B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InProcessWebSite", "test\WebSites\InProcessForwardsCompatWebSite\InProcessWebSite.csproj", "{BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestTasks", "test\testassets\TestTasks\TestTasks.csproj", "{2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InProcessWebSite", "test\testassets\InProcessWebSite\InProcessWebSite.csproj", "{E685D546-FDCD-4A4C-9183-728C308A9A9E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OutOfProcessWebSite", "test\testassets\OutOfProcessWebSite\OutOfProcessWebSite.csproj", "{CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StressTestWebSite", "test\testassets\StressTestWebSite\StressTestWebSite.csproj", "{7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MIcrosoft.AspNetCore.Server.IISIntegration.Tests", "test\IISIntegration.Tests\MIcrosoft.AspNetCore.Server.IISIntegration.Tests.csproj", "{ACCF17D6-CEA0-4008-8F36-70085163CAE7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -151,18 +146,6 @@ Global {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Release|x64.Build.0 = Release|Any CPU {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Release|x86.ActiveCfg = Release|Any CPU {8B3446E8-E6A8-4591-AA63-A95837C6E97C}.Release|x86.Build.0 = Release|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|x64.ActiveCfg = Debug|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|x64.Build.0 = Debug|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|x86.ActiveCfg = Debug|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Debug|x86.Build.0 = Debug|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|Any CPU.Build.0 = Release|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|x64.ActiveCfg = Release|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|x64.Build.0 = Release|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|x86.ActiveCfg = Release|Any CPU - {4106DB10-E09F-480E-9CE6-B39235512EE6}.Release|x86.Build.0 = Release|Any CPU {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Debug|Any CPU.Build.0 = Debug|Any CPU {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -187,18 +170,6 @@ Global {9BC4AFCB-325D-4C81-8228-8CF301CE2F97}.Release|x64.Build.0 = Release|x64 {9BC4AFCB-325D-4C81-8228-8CF301CE2F97}.Release|x86.ActiveCfg = Release|x86 {9BC4AFCB-325D-4C81-8228-8CF301CE2F97}.Release|x86.Build.0 = Release|x86 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Debug|Any CPU.ActiveCfg = Debug|x64 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Debug|Any CPU.Build.0 = Debug|x64 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Debug|x64.ActiveCfg = Debug|x64 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Debug|x64.Build.0 = Debug|x64 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Debug|x86.ActiveCfg = Debug|x86 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Debug|x86.Build.0 = Debug|x86 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Release|Any CPU.ActiveCfg = Release|x64 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Release|Any CPU.Build.0 = Release|x64 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Release|x64.ActiveCfg = Release|x64 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Release|x64.Build.0 = Release|x64 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Release|x86.ActiveCfg = Release|x86 - {679FA2A2-898B-4320-884E-C2D294A97CE1}.Release|x86.Build.0 = Release|x86 {46A8612B-418B-4D70-B3A7-A21DD0627473}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {46A8612B-418B-4D70-B3A7-A21DD0627473}.Debug|Any CPU.Build.0 = Debug|Any CPU {46A8612B-418B-4D70-B3A7-A21DD0627473}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -211,18 +182,6 @@ Global {46A8612B-418B-4D70-B3A7-A21DD0627473}.Release|x64.Build.0 = Release|Any CPU {46A8612B-418B-4D70-B3A7-A21DD0627473}.Release|x86.ActiveCfg = Release|Any CPU {46A8612B-418B-4D70-B3A7-A21DD0627473}.Release|x86.Build.0 = Release|Any CPU - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Debug|Any CPU.ActiveCfg = Debug|x64 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Debug|Any CPU.Build.0 = Debug|x64 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Debug|x64.ActiveCfg = Debug|x64 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Debug|x64.Build.0 = Debug|x64 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Debug|x86.ActiveCfg = Debug|x86 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Debug|x86.Build.0 = Debug|x86 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Release|Any CPU.ActiveCfg = Release|x64 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Release|Any CPU.Build.0 = Release|x64 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Release|x64.ActiveCfg = Release|x64 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Release|x64.Build.0 = Release|x64 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Release|x86.ActiveCfg = Release|x86 - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Release|x86.Build.0 = Release|x86 {1EAC8125-1765-4E2D-8CBE-56DC98A1C8C1}.Debug|Any CPU.ActiveCfg = Debug|Win32 {1EAC8125-1765-4E2D-8CBE-56DC98A1C8C1}.Debug|x64.ActiveCfg = Debug|x64 {1EAC8125-1765-4E2D-8CBE-56DC98A1C8C1}.Debug|x64.Build.0 = Debug|x64 @@ -263,18 +222,6 @@ Global {09D9D1D6-2951-4E14-BC35-76A23CF9391A}.Release|x64.Build.0 = Release|x64 {09D9D1D6-2951-4E14-BC35-76A23CF9391A}.Release|x86.ActiveCfg = Release|Win32 {09D9D1D6-2951-4E14-BC35-76A23CF9391A}.Release|x86.Build.0 = Release|Win32 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Debug|Any CPU.ActiveCfg = Debug|x64 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Debug|Any CPU.Build.0 = Debug|x64 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Debug|x64.ActiveCfg = Debug|x64 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Debug|x64.Build.0 = Debug|x64 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Debug|x86.ActiveCfg = Debug|x86 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Debug|x86.Build.0 = Debug|x86 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Release|Any CPU.ActiveCfg = Release|x64 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Release|Any CPU.Build.0 = Release|x64 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Release|x64.ActiveCfg = Release|x64 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Release|x64.Build.0 = Release|x64 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Release|x86.ActiveCfg = Release|x86 - {42E60F88-E23F-417A-8143-0CCEC05E1D02}.Release|x86.Build.0 = Release|x86 {48F46909-E76A-4788-BCE1-E543C0E140FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {48F46909-E76A-4788-BCE1-E543C0E140FE}.Debug|Any CPU.Build.0 = Debug|Any CPU {48F46909-E76A-4788-BCE1-E543C0E140FE}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -399,16 +346,6 @@ Global {D1EA5D99-28FD-4197-81DE-17098846B38B}.Release|x64.Build.0 = Release|Any CPU {D1EA5D99-28FD-4197-81DE-17098846B38B}.Release|x86.ActiveCfg = Release|Any CPU {D1EA5D99-28FD-4197-81DE-17098846B38B}.Release|x86.Build.0 = Release|Any CPU - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Debug|Any CPU.ActiveCfg = Debug|x86 - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Debug|x64.ActiveCfg = Debug|x64 - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Debug|x64.Build.0 = Debug|x64 - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Debug|x86.ActiveCfg = Debug|x86 - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Debug|x86.Build.0 = Debug|x86 - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Release|Any CPU.ActiveCfg = Release|x86 - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Release|x64.ActiveCfg = Release|x64 - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Release|x64.Build.0 = Release|x64 - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Release|x86.ActiveCfg = Release|x86 - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493}.Release|x86.Build.0 = Release|x86 {2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Debug|Any CPU.Build.0 = Debug|Any CPU {2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -421,6 +358,48 @@ Global {2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Release|x64.Build.0 = Release|Any CPU {2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Release|x86.ActiveCfg = Release|Any CPU {2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Release|x86.Build.0 = Release|Any CPU + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Debug|Any CPU.ActiveCfg = Debug|x86 + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Debug|x64.ActiveCfg = Debug|x64 + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Debug|x64.Build.0 = Debug|x64 + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Debug|x86.ActiveCfg = Debug|x86 + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Debug|x86.Build.0 = Debug|x86 + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Release|Any CPU.ActiveCfg = Release|x86 + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Release|x64.ActiveCfg = Release|x64 + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Release|x64.Build.0 = Release|x64 + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Release|x86.ActiveCfg = Release|x86 + {E685D546-FDCD-4A4C-9183-728C308A9A9E}.Release|x86.Build.0 = Release|x86 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Debug|Any CPU.ActiveCfg = Debug|x86 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Debug|x64.ActiveCfg = Debug|x64 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Debug|x64.Build.0 = Debug|x64 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Debug|x86.ActiveCfg = Debug|x86 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Debug|x86.Build.0 = Debug|x86 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Release|Any CPU.ActiveCfg = Release|x86 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Release|x64.ActiveCfg = Release|x64 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Release|x64.Build.0 = Release|x64 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Release|x86.ActiveCfg = Release|x86 + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70}.Release|x86.Build.0 = Release|x86 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Debug|Any CPU.ActiveCfg = Debug|x86 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Debug|x64.ActiveCfg = Debug|x64 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Debug|x64.Build.0 = Debug|x64 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Debug|x86.ActiveCfg = Debug|x86 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Debug|x86.Build.0 = Debug|x86 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Release|Any CPU.ActiveCfg = Release|x86 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Release|x64.ActiveCfg = Release|x64 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Release|x64.Build.0 = Release|x64 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Release|x86.ActiveCfg = Release|x86 + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE}.Release|x86.Build.0 = Release|x86 + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Debug|x64.ActiveCfg = Debug|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Debug|x64.Build.0 = Debug|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Debug|x86.ActiveCfg = Debug|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Debug|x86.Build.0 = Debug|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Release|Any CPU.Build.0 = Release|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Release|x64.ActiveCfg = Release|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Release|x64.Build.0 = Release|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Release|x86.ActiveCfg = Release|Any CPU + {ACCF17D6-CEA0-4008-8F36-70085163CAE7}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -428,19 +407,15 @@ Global GlobalSection(NestedProjects) = preSolution {E4E2BDC4-A9C6-4AE9-B429-032EC83EDE64} = {C74B8F36-FD2F-45C9-9B8A-00E7CF0126A9} {8B3446E8-E6A8-4591-AA63-A95837C6E97C} = {04B1EDB6-E967-4D25-89B9-E6F8304038CD} - {4106DB10-E09F-480E-9CE6-B39235512EE6} = {EF30B533-D715-421A-92B7-92FEF460AC9C} {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA} = {EF30B533-D715-421A-92B7-92FEF460AC9C} {9BC4AFCB-325D-4C81-8228-8CF301CE2F97} = {C74B8F36-FD2F-45C9-9B8A-00E7CF0126A9} - {679FA2A2-898B-4320-884E-C2D294A97CE1} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} {46A8612B-418B-4D70-B3A7-A21DD0627473} = {04B1EDB6-E967-4D25-89B9-E6F8304038CD} - {13FD8F12-FFBE-4D01-B4AC-444F2994B04F} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} = {EF30B533-D715-421A-92B7-92FEF460AC9C} {1EAC8125-1765-4E2D-8CBE-56DC98A1C8C1} = {EF30B533-D715-421A-92B7-92FEF460AC9C} {06CA2C2B-83B0-4D83-905A-E0C74790009E} = {04B1EDB6-E967-4D25-89B9-E6F8304038CD} {EC82302F-D2F0-4727-99D1-EABC0DD9DC3B} = {06CA2C2B-83B0-4D83-905A-E0C74790009E} {55494E58-E061-4C4C-A0A8-837008E72F85} = {06CA2C2B-83B0-4D83-905A-E0C74790009E} {09D9D1D6-2951-4E14-BC35-76A23CF9391A} = {06CA2C2B-83B0-4D83-905A-E0C74790009E} - {42E60F88-E23F-417A-8143-0CCEC05E1D02} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} {48F46909-E76A-4788-BCE1-E543C0E140FE} = {622D35C9-627B-466E-8D15-752968CC79AF} {D57EA297-6DC2-4BC0-8C91-334863327863} = {06CA2C2B-83B0-4D83-905A-E0C74790009E} {7F87406C-A3C8-4139-A68D-E4C344294A67} = {06CA2C2B-83B0-4D83-905A-E0C74790009E} @@ -452,8 +427,11 @@ Global {D17B7B35-5361-4A50-B499-E03E5C3CC095} = {EF30B533-D715-421A-92B7-92FEF460AC9C} {582B07BC-73F4-4689-8557-B039298BD82C} = {EF30B533-D715-421A-92B7-92FEF460AC9C} {D1EA5D99-28FD-4197-81DE-17098846B38B} = {EF30B533-D715-421A-92B7-92FEF460AC9C} - {BBBC85B2-5D7A-4D09-90B1-8DBCC9059493} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} {2DD1269D-131C-4531-BB0D-7BE0EF8E56D0} = {EF30B533-D715-421A-92B7-92FEF460AC9C} + {E685D546-FDCD-4A4C-9183-728C308A9A9E} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} + {CFC23E23-7AD5-4D7D-9F3C-DBD241231E70} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} + {7C0B25FC-DADA-489D-A3FB-F3D732FC8ECE} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} + {ACCF17D6-CEA0-4008-8F36-70085163CAE7} = {EF30B533-D715-421A-92B7-92FEF460AC9C} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DB4F868D-E1AE-4FD7-9333-69FA15B268C5} diff --git a/src/Servers/IIS/test/IISIntegration.Tests/IISExtensionTests.cs b/src/Servers/IIS/test/IISIntegration.Tests/IISExtensionTests.cs new file mode 100644 index 0000000000..deae44471d --- /dev/null +++ b/src/Servers/IIS/test/IISIntegration.Tests/IISExtensionTests.cs @@ -0,0 +1,33 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System.Linq; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.DependencyInjection; +using Xunit; + +namespace Microsoft.AspNetCore.Server.IISIntegration +{ + public class IISExtensionTests + { + [Fact] + public void CallingUseIISIntegrationMultipleTimesWorks() + { + + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .UseIISIntegration() + .Configure(app => { }); + var server = new TestServer(builder); + + var filters = server.Host.Services.GetServices() + .OfType(); + + Assert.Single(filters); + } + } +} \ No newline at end of file diff --git a/src/Servers/IIS/test/IISIntegration.Tests/IISMiddlewareTests.cs b/src/Servers/IIS/test/IISIntegration.Tests/IISMiddlewareTests.cs new file mode 100644 index 0000000000..c5ef78b911 --- /dev/null +++ b/src/Servers/IIS/test/IISIntegration.Tests/IISMiddlewareTests.cs @@ -0,0 +1,420 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Net; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http.Features.Authentication; +using Microsoft.AspNetCore.TestHost; +using Microsoft.Extensions.DependencyInjection; +using Xunit; + +namespace Microsoft.AspNetCore.Server.IISIntegration +{ + public class IISMiddlewareTests + { + [Fact] + public async Task MiddlewareSkippedIfTokenIsMissing() + { + var assertsExecuted = false; + + var builder = new WebHostBuilder() + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => + { + var auth = context.Features.Get(); + Assert.Null(auth); + assertsExecuted = true; + return Task.FromResult(0); + }); + }); + var server = new TestServer(builder); + + var req = new HttpRequestMessage(HttpMethod.Get, ""); + req.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); + var response = await server.CreateClient().SendAsync(req); + Assert.True(assertsExecuted); + response.EnsureSuccessStatusCode(); + } + + [Fact] + public async Task MiddlewareRejectsRequestIfTokenHeaderIsMissing() + { + var assertsExecuted = false; + + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => + { + var auth = context.Features.Get(); + Assert.Null(auth); + assertsExecuted = true; + return Task.FromResult(0); + }); + }); + var server = new TestServer(builder); + + var req = new HttpRequestMessage(HttpMethod.Get, ""); + var response = await server.CreateClient().SendAsync(req); + Assert.False(assertsExecuted); + Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); + } + + [Theory] + [InlineData("/", "/iisintegration", "shutdown")] + [InlineData("/", "/iisintegration", "Shutdown")] + [InlineData("/pathBase", "/pathBase/iisintegration", "shutdown")] + [InlineData("/pathBase", "/pathBase/iisintegration", "Shutdown")] + public async Task MiddlewareShutsdownGivenANCMShutdown(string pathBase, string requestPath, string shutdownEvent) + { + var requestExecuted = new ManualResetEvent(false); + var applicationStoppingFired = new ManualResetEvent(false); + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", pathBase) + .UseIISIntegration() + .Configure(app => + { + var appLifetime = app.ApplicationServices.GetRequiredService(); + appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.Set()); + + app.Run(context => + { + requestExecuted.Set(); + return Task.FromResult(0); + }); + }); + var server = new TestServer(builder); + + var request = new HttpRequestMessage(HttpMethod.Post, requestPath); + request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); + request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-EVENT", shutdownEvent); + var response = await server.CreateClient().SendAsync(request); + + Assert.True(applicationStoppingFired.WaitOne(TimeSpan.FromSeconds(5))); + Assert.False(requestExecuted.WaitOne(0)); + Assert.Equal(HttpStatusCode.Accepted, response.StatusCode); + } + + public static TheoryData InvalidShutdownMethods + { + get + { + return new TheoryData + { + HttpMethod.Put, + HttpMethod.Trace, + HttpMethod.Head, + HttpMethod.Get, + HttpMethod.Delete, + HttpMethod.Options + }; + } + } + + [Theory] + [MemberData(nameof(InvalidShutdownMethods))] + public async Task MiddlewareIgnoresShutdownGivenWrongMethod(HttpMethod method) + { + var requestExecuted = new ManualResetEvent(false); + var applicationStoppingFired = new ManualResetEvent(false); + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + var appLifetime = app.ApplicationServices.GetRequiredService(); + appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.Set()); + + app.Run(context => + { + requestExecuted.Set(); + return Task.FromResult(0); + }); + }); + var server = new TestServer(builder); + + var request = new HttpRequestMessage(method, "/iisintegration"); + request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); + request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-EVENT", "shutdown"); + var response = await server.CreateClient().SendAsync(request); + + Assert.False(applicationStoppingFired.WaitOne(TimeSpan.FromSeconds(1))); + Assert.True(requestExecuted.WaitOne(0)); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + } + + [Theory] + [InlineData("/")] + [InlineData("/path")] + [InlineData("/path/iisintegration")] + public async Task MiddlewareIgnoresShutdownGivenWrongPath(string path) + { + var requestExecuted = new ManualResetEvent(false); + var applicationStoppingFired = new ManualResetEvent(false); + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + var appLifetime = app.ApplicationServices.GetRequiredService(); + appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.Set()); + + app.Run(context => + { + requestExecuted.Set(); + return Task.FromResult(0); + }); + }); + var server = new TestServer(builder); + + var request = new HttpRequestMessage(HttpMethod.Post, path); + request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); + request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-EVENT", "shutdown"); + var response = await server.CreateClient().SendAsync(request); + + Assert.False(applicationStoppingFired.WaitOne(TimeSpan.FromSeconds(1))); + Assert.True(requestExecuted.WaitOne(0)); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + } + + [Theory] + [InlineData("event")] + [InlineData("")] + [InlineData(null)] + public async Task MiddlewareIgnoresShutdownGivenWrongEvent(string shutdownEvent) + { + var requestExecuted = new ManualResetEvent(false); + var applicationStoppingFired = new ManualResetEvent(false); + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + var appLifetime = app.ApplicationServices.GetRequiredService(); + appLifetime.ApplicationStopping.Register(() => applicationStoppingFired.Set()); + + app.Run(context => + { + requestExecuted.Set(); + return Task.FromResult(0); + }); + }); + var server = new TestServer(builder); + + var request = new HttpRequestMessage(HttpMethod.Post, "/iisintegration"); + request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); + request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-EVENT", shutdownEvent); + var response = await server.CreateClient().SendAsync(request); + + Assert.False(applicationStoppingFired.WaitOne(TimeSpan.FromSeconds(1))); + Assert.True(requestExecuted.WaitOne(0)); + Assert.Equal(HttpStatusCode.OK, response.StatusCode); + } + + [Fact] + public void UrlDelayRegisteredAndPreferHostingUrlsSet() + { + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => Task.FromResult(0)); + }); + + Assert.Null(builder.GetSetting(WebHostDefaults.ServerUrlsKey)); + Assert.Null(builder.GetSetting(WebHostDefaults.PreferHostingUrlsKey)); + + // Adds a server and calls Build() + var server = new TestServer(builder); + + Assert.Equal("http://127.0.0.1:12345", builder.GetSetting(WebHostDefaults.ServerUrlsKey)); + Assert.Equal("true", builder.GetSetting(WebHostDefaults.PreferHostingUrlsKey)); + } + + [Fact] + public void PathBaseHiddenFromServer() + { + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/pathBase") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => Task.FromResult(0)); + }); + new TestServer(builder); + + Assert.Equal("http://127.0.0.1:12345", builder.GetSetting(WebHostDefaults.ServerUrlsKey)); + } + + [Fact] + public async Task AddsUsePathBaseMiddlewareWhenPathBaseSpecified() + { + var requestPathBase = string.Empty; + var requestPath = string.Empty; + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/pathbase") + .UseIISIntegration() + .Configure(app => + { + app.Run(context => + { + requestPathBase = context.Request.PathBase.Value; + requestPath = context.Request.Path.Value; + return Task.FromResult(0); + }); + }); + var server = new TestServer(builder); + + var request = new HttpRequestMessage(HttpMethod.Get, "/PathBase/Path"); + request.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); + var response = await server.CreateClient().SendAsync(request); + + Assert.Equal("/PathBase", requestPathBase); + Assert.Equal("/Path", requestPath); + } + + [Fact] + public async Task AddsAuthenticationHandlerByDefault() + { + var assertsExecuted = false; + + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .Configure(app => + { + app.Run(async context => + { + var auth = context.RequestServices.GetRequiredService(); + var windows = await auth.GetSchemeAsync(IISDefaults.AuthenticationScheme); + Assert.NotNull(windows); + Assert.Null(windows.DisplayName); + Assert.Equal("Microsoft.AspNetCore.Server.IISIntegration.AuthenticationHandler", windows.HandlerType.FullName); + assertsExecuted = true; + }); + }); + var server = new TestServer(builder); + + var req = new HttpRequestMessage(HttpMethod.Get, ""); + req.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); + await server.CreateClient().SendAsync(req); + + Assert.True(assertsExecuted); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task OnlyAddAuthenticationHandlerIfForwardWindowsAuthentication(bool forward) + { + var assertsExecuted = false; + + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .ConfigureServices(services => + { + services.Configure(options => + { + options.ForwardWindowsAuthentication = forward; + }); + }) + .Configure(app => + { + app.Run(async context => + { + var auth = context.RequestServices.GetService(); + Assert.NotNull(auth); + var windowsAuth = await auth.GetSchemeAsync(IISDefaults.AuthenticationScheme); + if (forward) + { + Assert.NotNull(windowsAuth); + Assert.Null(windowsAuth.DisplayName); + Assert.Equal("AuthenticationHandler", windowsAuth.HandlerType.Name); + } + else + { + Assert.Null(windowsAuth); + } + assertsExecuted = true; + }); + }); + var server = new TestServer(builder); + + var req = new HttpRequestMessage(HttpMethod.Get, ""); + req.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); + await server.CreateClient().SendAsync(req); + + Assert.True(assertsExecuted); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task DoesNotBlowUpWithoutAuth(bool forward) + { + var assertsExecuted = false; + + var builder = new WebHostBuilder() + .UseSetting("TOKEN", "TestToken") + .UseSetting("PORT", "12345") + .UseSetting("APPL_PATH", "/") + .UseIISIntegration() + .ConfigureServices(services => + { + services.Configure(options => + { + options.ForwardWindowsAuthentication = forward; + }); + }) + .Configure(app => + { + app.Run(context => + { + assertsExecuted = true; + return Task.FromResult(0); + }); + }); + var server = new TestServer(builder); + + var req = new HttpRequestMessage(HttpMethod.Get, ""); + req.Headers.TryAddWithoutValidation("MS-ASPNETCORE-TOKEN", "TestToken"); + await server.CreateClient().SendAsync(req); + + Assert.True(assertsExecuted); + } + } +} \ No newline at end of file diff --git a/src/Servers/IIS/test/IISIntegration.Tests/MIcrosoft.AspNetCore.Server.IISIntegration.Tests.csproj b/src/Servers/IIS/test/IISIntegration.Tests/MIcrosoft.AspNetCore.Server.IISIntegration.Tests.csproj new file mode 100644 index 0000000000..85d670991c --- /dev/null +++ b/src/Servers/IIS/test/IISIntegration.Tests/MIcrosoft.AspNetCore.Server.IISIntegration.Tests.csproj @@ -0,0 +1,17 @@ + + + + + $(StandardTestTfms) + + + + + + + + + + + + \ No newline at end of file