Przeglądaj źródła

Merge release/2.2 into master

Justin Kotalik 7 lat temu
rodzic
commit
f111a2d73a
43 zmienionych plików z 322 dodań i 489 usunięć
  1. 0 1
      build/buildorder.props
  2. 0 1
      build/submodules.props
  3. 0 31
      src/ServerTests/.gitignore
  4. 0 23
      src/ServerTests/Directory.Build.props
  5. 0 5
      src/ServerTests/Directory.Build.targets
  6. 0 7
      src/ServerTests/NuGetPackageVerifier.json
  7. 0 8
      src/ServerTests/README.md
  8. 0 53
      src/ServerTests/ServerTests.sln
  9. 0 31
      src/ServerTests/build/dependencies.props
  10. 0 12
      src/ServerTests/build/repo.props
  11. 0 17
      src/ServerTests/build/sources.props
  12. 0 23
      src/ServerTests/test/ServerComparison.FunctionalTests/ServerComparison.FunctionalTests.csproj
  13. 0 25
      src/ServerTests/test/ServerComparison.TestSites/Properties/launchSettings.json
  14. 0 26
      src/ServerTests/test/ServerComparison.TestSites/ServerComparison.TestSites.csproj
  15. 0 39
      src/ServerTests/test/aspnetcore_schema.xml
  16. 0 47
      src/ServerTests/test/aspnetcore_schema_v2.xml
  17. 0 72
      src/ServerTests/test/update_schema.ps1
  18. 0 12
      src/ServerTests/version.props
  19. 173 0
      src/Servers/FunctionalTests.sln
  20. 16 15
      src/Servers/IIS/IISIntegration.NoV1.sln
  21. 2 0
      src/Servers/IIS/build/assets.props
  22. 6 14
      src/Servers/IIS/build/testsite.props
  23. 2 7
      src/Servers/IIS/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.csproj
  24. 6 0
      src/Servers/IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj
  25. 1 0
      src/Servers/IIS/test/IISExpress.FunctionalTests/IISExpress.FunctionalTests.csproj
  26. 41 15
      src/Servers/IIS/test/testassets/TestTasks/InjectRequestHandler.cs
  27. 13 0
      src/Servers/test/FunctionalTests/Directory.Build.props
  28. 1 1
      src/Servers/test/FunctionalTests/HelloWorldTest.cs
  29. 4 4
      src/Servers/test/FunctionalTests/Helpers.cs
  30. 0 0
      src/Servers/test/FunctionalTests/NoCompression.conf
  31. 0 0
      src/Servers/test/FunctionalTests/NtlmAuthenticationTest.cs
  32. 0 0
      src/Servers/test/FunctionalTests/Properties/AssemblyInfo.cs
  33. 0 0
      src/Servers/test/FunctionalTests/ResponseCompressionTests.cs
  34. 0 0
      src/Servers/test/FunctionalTests/ResponseTests.cs
  35. 20 0
      src/Servers/test/FunctionalTests/ServerComparison.FunctionalTests.csproj
  36. 0 0
      src/Servers/test/FunctionalTests/nginx.conf
  37. 13 0
      src/Servers/testassets/ServerComparison.TestSites/Directory.Build.props
  38. 0 0
      src/Servers/testassets/ServerComparison.TestSites/Program.cs
  39. 24 0
      src/Servers/testassets/ServerComparison.TestSites/ServerComparison.TestSites.csproj
  40. 0 0
      src/Servers/testassets/ServerComparison.TestSites/Startup.cs
  41. 0 0
      src/Servers/testassets/ServerComparison.TestSites/StartupNtlmAuthentication.cs
  42. 0 0
      src/Servers/testassets/ServerComparison.TestSites/StartupResponseCompression.cs
  43. 0 0
      src/Servers/testassets/ServerComparison.TestSites/StartupResponses.cs

+ 0 - 1
build/buildorder.props

@@ -7,7 +7,6 @@
   </ItemDefinitionGroup>
 
   <ItemGroup>
-    <RepositoryBuildOrder Include="ServerTests" Order="11" />
     <RepositoryBuildOrder Include="Mvc" Order="14" />
     <RepositoryBuildOrder Include="AADIntegration" Order="15" />
     <RepositoryBuildOrder Include="Identity" Order="15" />

+ 0 - 1
build/submodules.props

@@ -48,6 +48,5 @@
     <!-- Test-only repos -->
     <Repository Include="AuthSamples" PatchPolicy="AlwaysUpdateAndCascadeVersions" />
     <Repository Include="MusicStore"  PatchPolicy="AlwaysUpdateAndCascadeVersions" />
-    <Repository Include="ServerTests" PatchPolicy="AlwaysUpdateAndCascadeVersions" />
   </ItemGroup>
 </Project>

+ 0 - 31
src/ServerTests/.gitignore

@@ -1,31 +0,0 @@
-[Oo]bj/
-[Bb]in/
-TestResults/
-.nuget/
-*.sln.ide/
-_ReSharper.*/
-packages/
-artifacts/
-PublishProfiles/
-*.user
-*.suo
-*.cache
-*.docstates
-_ReSharper.*
-nuget.exe
-*net45.csproj
-*net451.csproj
-*k10.csproj
-*.psess
-*.vsp
-*.pidb
-*.userprefs
-*DS_Store
-*.ncrunchsolution
-*.*sdf
-*.ipch
-project.lock.json
-/.vs/
-.testPublish/
-.build/
-global.json

+ 0 - 23
src/ServerTests/Directory.Build.props

@@ -1,23 +0,0 @@
-<Project>
-  <Import
-    Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), AspNetCoreSettings.props))\AspNetCoreSettings.props"
-    Condition=" '$(CI)' != 'true' AND '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), AspNetCoreSettings.props))' != '' " />
-
-  <Import Project="version.props" />
-  <Import Project="build\dependencies.props" />
-  <Import Project="build\sources.props" />
-
-  <PropertyGroup>
-    <Product>Microsoft ASP.NET Core</Product>
-    <RepositoryUrl>https://github.com/aspnet/AspNetCore</RepositoryUrl>
-    <RepositoryType>git</RepositoryType>
-    <RepositoryRoot>$(MSBuildThisFileDirectory)</RepositoryRoot>
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
-    <SharedSourceRoot>$(MSBuildThisFileDirectory)..\Shared\</SharedSourceRoot>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Internal.AspNetCore.Sdk" PrivateAssets="All" Version="$(InternalAspNetCoreSdkPackageVersion)" />
-  </ItemGroup>
-
-</Project>

+ 0 - 5
src/ServerTests/Directory.Build.targets

@@ -1,5 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp3.0' ">$(MicrosoftNETCoreAppPackageVersion)</RuntimeFrameworkVersion>
-  </PropertyGroup>
-</Project>

+ 0 - 7
src/ServerTests/NuGetPackageVerifier.json

@@ -1,7 +0,0 @@
-{
-  "Default": {
-    "rules": [
-      "DefaultCompositeRule"
-    ]
-  }
-}

+ 0 - 8
src/ServerTests/README.md

@@ -1,8 +0,0 @@
-Server Tests [Archived]
-=======================
-
-**This GitHub project has been archived.** Ongoing development on this project can be found in <https://github.com/aspnet/AspNetCore>.
-
-This repo hosts [HttpSysServer](https://github.com/aspnet/HttpSysServer) and [Kestrel](https://github.com/aspnet/KestrelHttpServer) tests.
-
-This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the [AspNetCore](https://github.com/aspnet/AspNetCore) repo.

+ 0 - 53
src/ServerTests/ServerTests.sln

@@ -1,53 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2036
-MinimumVisualStudioVersion = 15.0.26730.03
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{49AB8AAA-8160-48DF-A18B-78F51E54E02A}"
-	ProjectSection(SolutionItems) = preProject
-		.appveyor.yml = .appveyor.yml
-		.travis.yml = .travis.yml
-		Directory.Build.props = Directory.Build.props
-		Directory.Build.targets = Directory.Build.targets
-		NuGet.config = NuGet.config
-		build\repo.props = build\repo.props
-	EndProjectSection
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{FA91F388-F4AF-4850-9D68-D4D128E6B1A6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServerComparison.FunctionalTests", "test\ServerComparison.FunctionalTests\ServerComparison.FunctionalTests.csproj", "{A319ACCE-060B-4385-9534-9F2202F6180E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServerComparison.TestSites", "test\ServerComparison.TestSites\ServerComparison.TestSites.csproj", "{030225D8-4EE8-47E5-B692-2A96B3B51A38}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{55694E45-5EDE-46F8-80AA-797DE5F8C5C3}"
-	ProjectSection(SolutionItems) = preProject
-		build\dependencies.props = build\dependencies.props
-		build\repo.props = build\repo.props
-		build\sources.props = build\sources.props
-	EndProjectSection
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{A319ACCE-060B-4385-9534-9F2202F6180E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A319ACCE-060B-4385-9534-9F2202F6180E}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A319ACCE-060B-4385-9534-9F2202F6180E}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A319ACCE-060B-4385-9534-9F2202F6180E}.Release|Any CPU.Build.0 = Release|Any CPU
-		{030225D8-4EE8-47E5-B692-2A96B3B51A38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{030225D8-4EE8-47E5-B692-2A96B3B51A38}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{030225D8-4EE8-47E5-B692-2A96B3B51A38}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{030225D8-4EE8-47E5-B692-2A96B3B51A38}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-	GlobalSection(NestedProjects) = preSolution
-		{A319ACCE-060B-4385-9534-9F2202F6180E} = {FA91F388-F4AF-4850-9D68-D4D128E6B1A6}
-		{030225D8-4EE8-47E5-B692-2A96B3B51A38} = {FA91F388-F4AF-4850-9D68-D4D128E6B1A6}
-	EndGlobalSection
-	GlobalSection(ExtensibilityGlobals) = postSolution
-		SolutionGuid = {8A313020-8407-494F-81D7-7631580C5FCC}
-	EndGlobalSection
-EndGlobal

+ 0 - 31
src/ServerTests/build/dependencies.props

@@ -1,31 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
-  </PropertyGroup>
-  <PropertyGroup Label="Package Versions">
-    <InternalAspNetCoreSdkPackageVersion>3.0.0-build-20181114.5</InternalAspNetCoreSdkPackageVersion>
-    <MicrosoftAspNetCoreAspNetCoreModulePackageVersion>3.0.0-alpha1-10742</MicrosoftAspNetCoreAspNetCoreModulePackageVersion>
-    <MicrosoftAspNetCoreAspNetCoreModuleV2PackageVersion>3.0.0-alpha1-10742</MicrosoftAspNetCoreAspNetCoreModuleV2PackageVersion>
-    <MicrosoftAspNetCoreResponseCompressionPackageVersion>3.0.0-alpha1-10742</MicrosoftAspNetCoreResponseCompressionPackageVersion>
-    <MicrosoftAspNetCoreServerHttpSysPackageVersion>3.0.0-alpha1-10742</MicrosoftAspNetCoreServerHttpSysPackageVersion>
-    <MicrosoftAspNetCoreServerIISIntegrationPackageVersion>3.0.0-alpha1-10742</MicrosoftAspNetCoreServerIISIntegrationPackageVersion>
-    <MicrosoftAspNetCoreServerIISPackageVersion>3.0.0-alpha1-10742</MicrosoftAspNetCoreServerIISPackageVersion>
-    <MicrosoftAspNetCoreServerIntegrationTestingIISPackageVersion>3.0.0-alpha1-10742</MicrosoftAspNetCoreServerIntegrationTestingIISPackageVersion>
-    <MicrosoftAspNetCoreServerKestrelPackageVersion>3.0.0-alpha1-10742</MicrosoftAspNetCoreServerKestrelPackageVersion>
-    <MicrosoftAspNetCoreWebUtilitiesPackageVersion>3.0.0-alpha1-10742</MicrosoftAspNetCoreWebUtilitiesPackageVersion>
-    <MicrosoftExtensionsConfigurationCommandLinePackageVersion>3.0.0-preview-181113-11</MicrosoftExtensionsConfigurationCommandLinePackageVersion>
-    <MicrosoftExtensionsConfigurationJsonPackageVersion>3.0.0-preview-181113-11</MicrosoftExtensionsConfigurationJsonPackageVersion>
-    <MicrosoftExtensionsLoggingConsolePackageVersion>3.0.0-preview-181113-11</MicrosoftExtensionsLoggingConsolePackageVersion>
-    <MicrosoftExtensionsLoggingPackageVersion>3.0.0-preview-181113-11</MicrosoftExtensionsLoggingPackageVersion>
-    <MicrosoftExtensionsLoggingTestingPackageVersion>3.0.0-preview-181113-11</MicrosoftExtensionsLoggingTestingPackageVersion>
-    <MicrosoftNETCoreAppPackageVersion>3.0.0-preview1-26907-05</MicrosoftNETCoreAppPackageVersion>
-    <MicrosoftNetHttpHeadersPackageVersion>3.0.0-alpha1-10742</MicrosoftNetHttpHeadersPackageVersion>
-    <MicrosoftNETTestSdkPackageVersion>15.6.1</MicrosoftNETTestSdkPackageVersion>
-    <SerilogExtensionsLoggingPackageVersion>1.4.0</SerilogExtensionsLoggingPackageVersion>
-    <SerilogSinksFilePackageVersion>4.0.0</SerilogSinksFilePackageVersion>
-    <XunitPackageVersion>2.3.1</XunitPackageVersion>
-    <XunitRunnerVisualStudioPackageVersion>2.4.0</XunitRunnerVisualStudioPackageVersion>
-  </PropertyGroup>
-  <PropertyGroup Label="Package Versions: Pinned" />
-  <Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " />
-</Project>

+ 0 - 12
src/ServerTests/build/repo.props

@@ -1,12 +0,0 @@
-<Project>
-  <Import Project="dependencies.props" />
-
-  <PropertyGroup>
-    <OverridePackageOutputPath>false</OverridePackageOutputPath>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <DotNetCoreRuntime Include="$(MicrosoftNETCoreAppPackageVersion)" />
-    <DotNetCoreRuntime Condition="'$(OS)' == 'Windows_NT'" Include="$(MicrosoftNETCoreAppPackageVersion)" Arch="x86" />
-  </ItemGroup>
-</Project>

+ 0 - 17
src/ServerTests/build/sources.props

@@ -1,17 +0,0 @@
-<Project>
-  <Import Project="$(DotNetRestoreSourcePropsPath)" Condition="'$(DotNetRestoreSourcePropsPath)' != ''"/>
-
-  <PropertyGroup Label="RestoreSources">
-    <RestoreSources>$(DotNetRestoreSources)</RestoreSources>
-    <RestoreSources Condition="'$(DotNetBuildOffline)' != 'true' AND '$(AspNetUniverseBuildOffline)' != 'true' ">
-      $(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>
-    <RestoreSources Condition="'$(DotNetBuildOffline)' != 'true'">
-      $(RestoreSources);
-      https://api.nuget.org/v3/index.json;
-    </RestoreSources>
-  </PropertyGroup>
-</Project>

+ 0 - 23
src/ServerTests/test/ServerComparison.FunctionalTests/ServerComparison.FunctionalTests.csproj

@@ -1,23 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp3.0</TargetFramework>
-  </PropertyGroup>
-
-  <ItemGroup>
-    <Content Include="*.config;*.conf" CopyToPublishDirectory="PreserveNewest" CopyToOutputDirectory="PreserveNewest" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" Version="$(MicrosoftAspNetCoreServerIntegrationTestingIISPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionsLoggingPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Testing" Version="$(MicrosoftExtensionsLoggingTestingPackageVersion)" />
-    <PackageReference Include="Microsoft.Net.Http.Headers" Version="$(MicrosoftNetHttpHeadersPackageVersion)" />
-    <PackageReference Include="Serilog.Extensions.Logging" Version="$(SerilogExtensionsLoggingPackageVersion)" />
-    <PackageReference Include="Serilog.Sinks.File" Version="$(SerilogSinksFilePackageVersion)" />
-    <PackageReference Include="xunit" Version="$(XunitPackageVersion)" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="$(XunitRunnerVisualStudioPackageVersion)" />
-  </ItemGroup>
-
-</Project>

+ 0 - 25
src/ServerTests/test/ServerComparison.TestSites/Properties/launchSettings.json

@@ -1,25 +0,0 @@
-{
-  "iisSettings": {
-    "windowsAuthentication": false,
-    "anonymousAuthentication": true,
-    "iisExpress": {
-      "applicationUrl": "http://localhost:39982/",
-      "sslPort": 0
-    }
-  },
-  "profiles": {
-    "IIS Express": {
-      "commandName": "IISExpress",
-      "launchBrowser": true,
-      "environmentVariables": {
-        "ASPNET_ENVIRONMENT": "HelloWorld"
-      }
-    },
-    "web": {
-      "commandName": "web",
-      "environmentVariables": {
-        "ASPNET_ENVIRONMENT": "HelloWorld"
-      }
-    }
-  }
-}

+ 0 - 26
src/ServerTests/test/ServerComparison.TestSites/ServerComparison.TestSites.csproj

@@ -1,26 +0,0 @@
-<Project Sdk="Microsoft.NET.Sdk.Web">
-
-  <PropertyGroup>
-    <TargetFramework>netcoreapp3.0</TargetFramework>
-    <RuntimeIdentifiers>win7-x86;win7-x64;linux-x64;osx-x64</RuntimeIdentifiers>
-  </PropertyGroup>
-
-  <ItemGroup Condition="'$(OS)' == 'Windows_NT'">
-    <PackageReference Include="Microsoft.AspNetCore.AspNetCoreModule" Version="$(MicrosoftAspNetCoreAspNetCoreModulePackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.AspNetCoreModuleV2" Version="$(MicrosoftAspNetCoreAspNetCoreModuleV2PackageVersion)" />
-  </ItemGroup>
-
-  <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.ResponseCompression" Version="$(MicrosoftAspNetCoreResponseCompressionPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.HttpSys" Version="$(MicrosoftAspNetCoreServerHttpSysPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.IIS" Version="$(MicrosoftAspNetCoreServerIISPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="$(MicrosoftAspNetCoreServerIISIntegrationPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" Version="$(MicrosoftAspNetCoreServerKestrelPackageVersion)" />
-    <PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="$(MicrosoftAspNetCoreWebUtilitiesPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.CommandLine" Version="$(MicrosoftExtensionsConfigurationCommandLinePackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="$(MicrosoftExtensionsConfigurationJsonPackageVersion)" />
-    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionsLoggingConsolePackageVersion)" />
-    <PackageReference Include="Microsoft.Net.Http.Headers" Version="$(MicrosoftNetHttpHeadersPackageVersion)" />
-  </ItemGroup>
-
-</Project>

+ 0 - 39
src/ServerTests/test/aspnetcore_schema.xml

@@ -1,39 +0,0 @@
-<!--
-    
-    IIS Asp.Net Core Extension Schema
-    
-    ** Please DO NOT edit this file yourself. **
-    
-    If you want to add configuration sections to the schema, you may place 
-    them in .xml files similar to this one, in this directory. They will be 
-    picked up automatically on startup.
-
--->
-
-<configSchema>
-  <sectionSchema name="system.webServer/aspNetCore">
-    <attribute name="processPath" type="string" expanded="true"/>
-    <attribute name="arguments" type="string" expanded="true" defaultValue=""/>
-    <attribute name="startupTimeLimit" type="uint" defaultValue="120" validationType="integerRange" validationParameter="0,3600"/> <!-- in seconds -->
-    <attribute name="shutdownTimeLimit" type="uint" defaultValue="10" validationType="integerRange" validationParameter="0,600"/>  <!-- in seconds -->   
-    <attribute name="rapidFailsPerMinute" type="uint" defaultValue="10" validationType="integerRange" validationParameter="0,100"/>
-    <attribute name="requestTimeout" type="timeSpan" defaultValue="00:02:00" validationType="timeSpanRange" validationParameter="0,1296000,60"/>
-    <attribute name="stdoutLogEnabled" type="bool" defaultValue="false" />
-    <attribute name="stdoutLogFile" type="string" defaultValue=".\aspnetcore-stdout" expanded="true"/>
-    <attribute name="processesPerApplication" type="uint" defaultValue="1" validationType="integerRange" validationParameter="1,100"/>
-    <attribute name="forwardWindowsAuthToken" type="bool" defaultValue="true" />
-    <attribute name="disableStartUpErrorPage" type="bool" defaultValue="false" />
-    <attribute name="hostingModel" type="string" />
-    <element name="recycleOnFileChange">
-      <collection addElement="file" clearElement="clear">
-        <attribute name="path" type="string" required="true" validationType="nonEmptyString" expanded="true"/>
-      </collection>
-    </element>
-    <element name="environmentVariables">
-      <collection addElement="environmentVariable" clearElement="clear" >
-        <attribute name="name" type="string" required="true" validationType="nonEmptyString"/>
-        <attribute name="value" type="string" required="true"/>
-      </collection>
-    </element>
-  </sectionSchema>
-</configSchema>

+ 0 - 47
src/ServerTests/test/aspnetcore_schema_v2.xml

@@ -1,47 +0,0 @@
-<!--
-
-    IIS Asp.Net Core Extension Schema
-
-    ** Please DO NOT edit this file yourself. **
-
-    If you want to add configuration sections to the schema, you may place
-    them in .xml files similar to this one, in this directory. They will be
-    picked up automatically on startup.
-
--->
-
-<configSchema>
-    <sectionSchema name="system.webServer/aspNetCore">
-        <attribute name="processPath" type="string" expanded="true"/>
-        <attribute name="arguments" type="string" expanded="true" defaultValue=""/>
-        <attribute name="startupTimeLimit" type="uint" defaultValue="120" validationType="integerRange" validationParameter="0,3600"/>
-        <!-- in seconds -->
-        <attribute name="shutdownTimeLimit" type="uint" defaultValue="10" validationType="integerRange" validationParameter="0,600"/>
-        <!-- in seconds -->
-        <attribute name="rapidFailsPerMinute" type="uint" defaultValue="10" validationType="integerRange" validationParameter="0,100"/>
-        <attribute name="requestTimeout" type="timeSpan" defaultValue="00:02:00" validationType="timeSpanRange" validationParameter="0,1296000,1"/>
-        <attribute name="stdoutLogEnabled" type="bool" defaultValue="false" />
-        <attribute name="stdoutLogFile" type="string" defaultValue=".\aspnetcore-stdout" expanded="true"/>
-        <attribute name="processesPerApplication" type="uint" defaultValue="1" validationType="integerRange" validationParameter="1,100"/>
-        <attribute name="forwardWindowsAuthToken" type="bool" defaultValue="true" />
-        <attribute name="disableStartUpErrorPage" type="bool" defaultValue="false" />
-        <attribute name="hostingModel" type="string" />
-        <element name="recycleOnFileChange">
-            <collection addElement="file" clearElement="clear">
-                <attribute name="path" type="string" required="true" validationType="nonEmptyString" expanded="true"/>
-            </collection>
-        </element>
-        <element name="environmentVariables">
-            <collection addElement="environmentVariable" clearElement="clear" >
-                <attribute name="name" type="string" required="true" validationType="nonEmptyString"/>
-                <attribute name="value" type="string" required="true"/>
-            </collection>
-        </element>
-        <element name="handlerSettings">
-            <collection addElement="handlerSetting" clearElement="clear" >
-                <attribute name="name" type="string" required="true" validationType="nonEmptyString"/>
-               <attribute name="value" type="string" required="true"/>
-            </collection>
-        </element>
-    </sectionSchema>
-</configSchema>

+ 0 - 72
src/ServerTests/test/update_schema.ps1

@@ -1,72 +0,0 @@
-<#
-.DESCRIPTION
-Updates aspnetcore_schema.xml to the latest version.
-Updates aspnetcore_schema_v2.xml to the latest version.
-Requires admin privileges.
-#>
-[cmdletbinding(SupportsShouldProcess = $true)]
-param()
-
-$ErrorActionPreference = 'Stop'
-Set-StrictMode -Version 1
-
-$ancmSchemaFiles = @(
-    "aspnetcore_schema.xml",
-    "aspnetcore_schema_v2.xml"
-)
-
-$ancmSchemaFileLocations = @(
-    @(Resolve-Path "$PSScriptRoot\aspnetcore_schema.xml"),
-    @(Resolve-Path "$PSScriptRoot\aspnetcore_schema_v2.xml")
-)
-
-[bool]$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
-
-if (-not $isAdmin -and -not $WhatIfPreference) {
-    if ($PSCmdlet.ShouldContinue("Continue as an admin?", "This script needs admin privileges to update IIS Express and IIS.")) {
-        $thisFile = Join-Path $PSScriptRoot $MyInvocation.MyCommand.Name
-
-        Start-Process `
-            -Verb runas `
-            -FilePath "powershell.exe" `
-            -ArgumentList $thisFile `
-            -Wait `
-            | Out-Null
-
-        if (-not $?) {
-            throw 'Update failed'
-        }
-        exit
-    }
-    else {
-        throw 'Requires admin privileges'
-    }
-}
-
-for ($i=0; $i -lt $ancmSchemaFiles.Length; $i++)
-{
-    $schemaFile = $ancmSchemaFiles[$i]
-    $schemaSource = $ancmSchemaFileLocations[$i]
-
-    $destinations = @(
-        "${env:ProgramFiles(x86)}\IIS Express\config\schema\",
-        "${env:ProgramFiles}\IIS Express\config\schema\",
-        "${env:windir}\system32\inetsrv\config\schema\"
-    )
-
-    foreach ($destPath in $destinations) {
-        $dest = "$destPath\${schemaFile}";
-
-        if (!(Test-Path $destPath))
-        {
-            Write-Host "$destPath doesn't exist"
-            continue;
-        }
-
-        if ($PSCmdlet.ShouldProcess($dest, "Replace file")) {
-            Write-Host "Updated $dest"
-            Move-Item $dest "${dest}.bak" -ErrorAction Ignore
-            Copy-Item $schemaSource $dest
-        }
-    }
-}

+ 0 - 12
src/ServerTests/version.props

@@ -1,12 +0,0 @@
-<Project>
-  <PropertyGroup>
-    <VersionPrefix>3.0.0</VersionPrefix>
-    <VersionSuffix>alpha1</VersionSuffix>
-    <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' == 'rtm' ">$(VersionPrefix)</PackageVersion>
-    <PackageVersion Condition="'$(IsFinalBuild)' == 'true' AND '$(VersionSuffix)' != 'rtm' ">$(VersionPrefix)-$(VersionSuffix)-final</PackageVersion>
-    <BuildNumber Condition="'$(BuildNumber)' == ''">t000</BuildNumber>
-    <FeatureBranchVersionPrefix Condition="'$(FeatureBranchVersionPrefix)' == ''">a-</FeatureBranchVersionPrefix>
-    <VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(FeatureBranchVersionSuffix)' != ''">$(FeatureBranchVersionPrefix)$(VersionSuffix)-$([System.Text.RegularExpressions.Regex]::Replace('$(FeatureBranchVersionSuffix)', '[^\w-]', '-'))</VersionSuffix>
-    <VersionSuffix Condition="'$(VersionSuffix)' != '' And '$(BuildNumber)' != ''">$(VersionSuffix)-$(BuildNumber)</VersionSuffix>
-  </PropertyGroup>
-</Project>

+ 173 - 0
src/Servers/FunctionalTests.sln

@@ -0,0 +1,173 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26124.0
+MinimumVisualStudioVersion = 15.0.26124.0
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServerComparison.FunctionalTests", "test\FunctionalTests\ServerComparison.FunctionalTests.csproj", "{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_dependencies", "_dependencies", "{25B4D0F2-96D1-4F34-896E-ABA1E803A230}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IntegrationTesting", "..\Hosting\Server.IntegrationTesting\src\Microsoft.AspNetCore.Server.IntegrationTesting.csproj", "{C36232B5-48B5-4D9D-A357-17278265827E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Net.Http.Headers", "..\Http\Headers\src\Microsoft.Net.Http.Headers.csproj", "{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.WebUtilities", "..\Http\WebUtilities\src\Microsoft.AspNetCore.WebUtilities.csproj", "{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.ResponseCompression", "..\Middleware\ResponseCompression\src\Microsoft.AspNetCore.ResponseCompression.csproj", "{4596F641-5AC2-4EC0-B7DD-998D1503D717}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.HttpSys", "HttpSys\src\Microsoft.AspNetCore.Server.HttpSys.csproj", "{831EA089-7072-41CF-996A-75A3EF39D31E}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "IIS\src\Microsoft.AspNetCore.Server.IISIntegration\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{9DD063D3-CAE1-49C2-9C24-DE3499E79322}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.Kestrel", "Kestrel\Kestrel\src\Microsoft.AspNetCore.Server.Kestrel.csproj", "{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServerComparison.TestSites", "testassets\ServerComparison.TestSites\ServerComparison.TestSites.csproj", "{9D402831-ED2C-4026-925E-30F48371064A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IIS", "IIS\src\Microsoft.AspNetCore.Server.IIS\Microsoft.AspNetCore.Server.IIS.csproj", "{6516E482-75AA-4B76-B9A6-87ABEE1DB625}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Debug|x64.Build.0 = Debug|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Debug|x86.Build.0 = Debug|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Release|x64.ActiveCfg = Release|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Release|x64.Build.0 = Release|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Release|x86.ActiveCfg = Release|Any CPU
+		{78018310-02F8-4BB8-A8E2-E88AF7A7F51E}.Release|x86.Build.0 = Release|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Debug|x64.Build.0 = Debug|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Debug|x86.Build.0 = Debug|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Release|x64.ActiveCfg = Release|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Release|x64.Build.0 = Release|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Release|x86.ActiveCfg = Release|Any CPU
+		{C36232B5-48B5-4D9D-A357-17278265827E}.Release|x86.Build.0 = Release|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Debug|x64.Build.0 = Debug|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Debug|x86.Build.0 = Debug|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Release|x64.ActiveCfg = Release|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Release|x64.Build.0 = Release|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Release|x86.ActiveCfg = Release|Any CPU
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4}.Release|x86.Build.0 = Release|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Debug|x64.Build.0 = Debug|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Debug|x86.Build.0 = Debug|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Release|x64.ActiveCfg = Release|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Release|x64.Build.0 = Release|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Release|x86.ActiveCfg = Release|Any CPU
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C}.Release|x86.Build.0 = Release|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Debug|x64.Build.0 = Debug|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Debug|x86.Build.0 = Debug|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Release|x64.ActiveCfg = Release|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Release|x64.Build.0 = Release|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Release|x86.ActiveCfg = Release|Any CPU
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717}.Release|x86.Build.0 = Release|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Debug|x64.Build.0 = Debug|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Debug|x86.Build.0 = Debug|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Release|x64.ActiveCfg = Release|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Release|x64.Build.0 = Release|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Release|x86.ActiveCfg = Release|Any CPU
+		{831EA089-7072-41CF-996A-75A3EF39D31E}.Release|x86.Build.0 = Release|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Debug|x64.Build.0 = Debug|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Debug|x86.Build.0 = Debug|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Release|x64.ActiveCfg = Release|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Release|x64.Build.0 = Release|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Release|x86.ActiveCfg = Release|Any CPU
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322}.Release|x86.Build.0 = Release|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Debug|x64.Build.0 = Debug|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Debug|x86.Build.0 = Debug|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Release|x64.ActiveCfg = Release|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Release|x64.Build.0 = Release|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Release|x86.ActiveCfg = Release|Any CPU
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D}.Release|x86.Build.0 = Release|Any CPU
+		{9D402831-ED2C-4026-925E-30F48371064A}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{9D402831-ED2C-4026-925E-30F48371064A}.Debug|x64.ActiveCfg = Debug|x64
+		{9D402831-ED2C-4026-925E-30F48371064A}.Debug|x64.Build.0 = Debug|x64
+		{9D402831-ED2C-4026-925E-30F48371064A}.Debug|x86.ActiveCfg = Debug|x86
+		{9D402831-ED2C-4026-925E-30F48371064A}.Debug|x86.Build.0 = Debug|x86
+		{9D402831-ED2C-4026-925E-30F48371064A}.Release|Any CPU.ActiveCfg = Release|x86
+		{9D402831-ED2C-4026-925E-30F48371064A}.Release|x64.ActiveCfg = Release|x64
+		{9D402831-ED2C-4026-925E-30F48371064A}.Release|x64.Build.0 = Release|x64
+		{9D402831-ED2C-4026-925E-30F48371064A}.Release|x86.ActiveCfg = Release|x86
+		{9D402831-ED2C-4026-925E-30F48371064A}.Release|x86.Build.0 = Release|x86
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Debug|x64.Build.0 = Debug|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Debug|x86.Build.0 = Debug|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Release|Any CPU.Build.0 = Release|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Release|x64.ActiveCfg = Release|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Release|x64.Build.0 = Release|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Release|x86.ActiveCfg = Release|Any CPU
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625}.Release|x86.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{C36232B5-48B5-4D9D-A357-17278265827E} = {25B4D0F2-96D1-4F34-896E-ABA1E803A230}
+		{4507F026-2C82-4DD7-965B-BD28C9F0EAB4} = {25B4D0F2-96D1-4F34-896E-ABA1E803A230}
+		{837CCC8E-AC1E-4A4C-94EE-7AFE0987314C} = {25B4D0F2-96D1-4F34-896E-ABA1E803A230}
+		{4596F641-5AC2-4EC0-B7DD-998D1503D717} = {25B4D0F2-96D1-4F34-896E-ABA1E803A230}
+		{831EA089-7072-41CF-996A-75A3EF39D31E} = {25B4D0F2-96D1-4F34-896E-ABA1E803A230}
+		{9DD063D3-CAE1-49C2-9C24-DE3499E79322} = {25B4D0F2-96D1-4F34-896E-ABA1E803A230}
+		{0DD5F47B-EDA3-405A-A2F3-08CB2566E30D} = {25B4D0F2-96D1-4F34-896E-ABA1E803A230}
+		{6516E482-75AA-4B76-B9A6-87ABEE1DB625} = {25B4D0F2-96D1-4F34-896E-ABA1E803A230}
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {F4D963C1-44FE-45AE-9B2A-11CD86C7539F}
+	EndGlobalSection
+EndGlobal

+ 16 - 15
src/Servers/IIS/IISIntegration.NoV1.sln

@@ -36,6 +36,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{7E80C58E
 	ProjectSection(SolutionItems) = preProject
 		build\applicationhost.config = build\applicationhost.config
 		build\applicationhost.iis.config = build\applicationhost.iis.config
+		build\assets.props = build\assets.props
 		build\Build.Settings = build\Build.Settings
 		build\Config.Definitions.Props = build\Config.Definitions.Props
 		build\Key.snk = build\Key.snk
@@ -68,8 +69,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StressTestWebSite", "test\t
 		{46A8612B-418B-4D70-B3A7-A21DD0627473} = {46A8612B-418B-4D70-B3A7-A21DD0627473}
 	EndProjectSection
 EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestTasks", "test\TestTasks\TestTasks.csproj", "{064D860B-4D7C-4B1D-918F-E020F1B99E2A}"
-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}"
@@ -116,6 +115,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IIS.ForwardsCompatibility.F
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InProcessWebSite", "test\testassets\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
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -222,18 +223,6 @@ Global
 		{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
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Debug|x64.ActiveCfg = Debug|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Debug|x64.Build.0 = Debug|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Debug|x86.ActiveCfg = Debug|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Debug|x86.Build.0 = Debug|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Release|Any CPU.Build.0 = Release|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Release|x64.ActiveCfg = Release|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Release|x64.Build.0 = Release|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Release|x86.ActiveCfg = Release|Any CPU
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A}.Release|x86.Build.0 = Release|Any CPU
 		{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
@@ -420,6 +409,18 @@ Global
 		{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
+		{2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Debug|x64.Build.0 = Debug|Any CPU
+		{2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Debug|x86.Build.0 = Debug|Any CPU
+		{2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{2DD1269D-131C-4531-BB0D-7BE0EF8E56D0}.Release|x64.ActiveCfg = Release|Any CPU
+		{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
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -433,7 +434,6 @@ Global
 		{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}
-		{064D860B-4D7C-4B1D-918F-E020F1B99E2A} = {EF30B533-D715-421A-92B7-92FEF460AC9C}
 		{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}
@@ -453,6 +453,7 @@ Global
 		{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}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {DB4F868D-E1AE-4FD7-9333-69FA15B268C5}

+ 2 - 0
src/Servers/IIS/build/assets.props

@@ -167,6 +167,7 @@
           DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_outofprocess.dll"
           Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj"
           PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\x64\aspnetcorev2_outofprocess.pdb"
+          HandlerPath="2.0.0"
         />
         <ShimComponents
           VCPlatform="Win32"
@@ -180,6 +181,7 @@
           DllLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\x86\aspnetcorev2_outofprocess.dll"
           Include="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj"
           PdbLocation="$(MSBuildThisFileDirectory)..\src\AspNetCoreModuleV2\OutOfProcessRequestHandler\bin\$(Configuration)\x86\aspnetcorev2_outofprocess.pdb"
+          HandlerPath="2.0.0"
         />
 
        <InProcessComponents

+ 6 - 14
src/Servers/IIS/build/testsite.props

@@ -54,34 +54,26 @@
   <Target Name="PrepareInjectionApp" Condition="'$(InProcessTestSite)' == 'true'">
     <PropertyGroup>
       <InjectDepsAssembly>$(MSBuildThisFileDirectory)..\test\testassets\TestTasks\bin\$(Configuration)\$(TargetFramework)\TestTasks</InjectDepsAssembly>
-      <InjectDepsApp Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework' ">$(InjectDepsAssembly)</InjectDepsApp>
-      <InjectDepsArguments>"win7-$(NativePlatform)" "$(AncmInProcessRHPath)"</InjectDepsArguments>
-    </PropertyGroup>
-
-    <PropertyGroup Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework' ">
-      <InjectDepsAssembly>$(InjectDepsAssembly).exe</InjectDepsAssembly>
-      <InjectDepsApp>$(InjectDepsAssembly)</InjectDepsApp>
     </PropertyGroup>
 
     <PropertyGroup Condition=" '$(TargetFrameworkIdentifier)' != '.NETFramework' ">
-      <InjectDepsAssembly>$(InjectDepsAssembly).dll</InjectDepsAssembly>
-      <InjectDepsApp>dotnet</InjectDepsApp>
-      <InjectDepsArguments>$(InjectDepsAssembly) $(InjectDepsArguments)</InjectDepsArguments>
+      <InjectDepsApp>dotnet $(InjectDepsAssembly).dll</InjectDepsApp>
     </PropertyGroup>
   </Target>
 
+
   <Target Name="InjectRequestHandler"
-          Condition=" '$(InProcessTestSite)' == 'true' and ( '$(OS)' == 'Windows_NT' or '$(TargetFrameworkIdentifier)' != '.NETFramework' ) "
+          Condition=" '$(InProcessTestSite)' == 'true' AND '$(OS)' == 'Windows_NT' AND '$(TargetFrameworkIdentifier)' != '.NETFramework'"
           AfterTargets="GenerateBuildDependencyFile"
           DependsOnTargets="PrepareInjectionApp">
-    <Exec Command="$(InjectDepsApp) $(InjectDepsArguments) &quot;$(ProjectDepsFilePath)&quot;" />
+    <Exec Command="$(InjectDepsApp) &quot;$(ProjectDepsFilePath)&quot; $(RuntimeIdentifier) " />
   </Target>
 
   <Target Name="InjectRequestHandlerOnPublish"
-          Condition=" '$(InProcessTestSite)' == 'true' and ( '$(OS)' == 'Windows_NT' or '$(TargetFrameworkIdentifier)' != '.NETFramework' ) "
+          Condition=" '$(InProcessTestSite)' == 'true' AND '$(OS)' == 'Windows_NT' AND '$(TargetFrameworkIdentifier)' != '.NETFramework'"
           AfterTargets="GeneratePublishDependencyFile"
           DependsOnTargets="PrepareInjectionApp">
-    <Exec Command="$(InjectDepsApp) $(InjectDepsArguments) &quot;$(PublishDepsFilePath)&quot;" />
+    <Exec Command="$(InjectDepsApp) &quot;$(PublishDepsFilePath)&quot; $(RuntimeIdentifier) " />
   </Target>
 
 </Project>

+ 2 - 7
src/Servers/IIS/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.csproj

@@ -1,4 +1,4 @@
-<Project Sdk="Microsoft.NET.Sdk">
+<Project Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <TargetFramework>netcoreapp3.0</TargetFramework>
@@ -50,12 +50,7 @@
           BeforeTargets="AssignTargetPaths"
           Condition="$(PackNativeAssets) == 'true'">
     <ItemGroup>
-      <None Include="%(RunInProcessComponents.DllLocation)"
-            CopyToOutputDirectory="PreserveNewest"
-            Link="%(RunInProcessComponents.NativeAsset).dll" />
-      <None Include="%(RunInProcessComponents.PdbLocation)"
-            CopyToOutputDirectory="PreserveNewest"
-            Link="%(RunInProcessComponents.NativeAsset).pdb" />
+      <None Include="%(InProcessComponents.DllLocation)" CopyToOutputDirectory="PreserveNewest" Link="%(InProcessComponents.Platform)\%(InProcessComponents.NativeAsset).dll" />
     </ItemGroup>
   </Target>
 </Project>

+ 6 - 0
src/Servers/IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj

@@ -32,6 +32,12 @@
     <NativeProjectReference Include="$(MSBuildThisFileDirectory)..\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj" HandlerPath="2.0.0" />
   </ItemGroup>
 
+  <Target Name="AddRunNativeComponents" BeforeTargets="AssignTargetPaths" Condition="'$(OS)' == 'Windows_NT'">
+    <ItemGroup>
+      <None Include="%(ShimComponents.DllLocation)" CopyToOutputDirectory="PreserveNewest" Link="%(ShimComponents.Platform)\%(ShimComponents.HandlerPath)\%(ShimComponents.NativeAsset).dll" />
+    </ItemGroup>
+  </Target>
+
   <ItemGroup>
     <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting" />
     <Reference Include="Microsoft.NETCore.Windows.ApiSets" />

+ 1 - 0
src/Servers/IIS/test/IISExpress.FunctionalTests/IISExpress.FunctionalTests.csproj

@@ -3,6 +3,7 @@
   <PropertyGroup>
     <TargetFramework>netcoreapp3.0</TargetFramework>
     <DisableFastUpToDateCheck>True</DisableFastUpToDateCheck>
+    <TestGroupName>IISExpress.FunctionalTests</TestGroupName>
     <SkipTests Condition=" '$(SkipIISExpressTests)' == 'true' ">true</SkipTests>
   </PropertyGroup>
 

+ 41 - 15
src/Servers/IIS/test/testassets/TestTasks/InjectRequestHandler.cs

@@ -12,11 +12,16 @@ namespace TestTasks
 {
     public class InjectRequestHandler
     {
+        private const string aspnetcoreV2Name = "aspnetcorev2_inprocess.dll";
+
         private static void Main(string[] args)
         {
-            string rid = args[0];
-            string libraryLocation = args[1];
-            string depsFile = args[2];
+            string depsFile = args[0];
+            string rid = "";
+            if (args.Length > 1)
+            {
+                rid = args[1];
+            }
 
             JToken deps;
             using (var file = File.OpenText(depsFile))
@@ -32,26 +37,47 @@ namespace TestTasks
             var target = (JObject)deps["targets"][targetName.Value];
             var targetLibrary = target.Properties().FirstOrDefault(p => p.Name == libraryName);
             targetLibrary?.Remove();
+
+            var bitness = new JObject();
+            if (string.IsNullOrEmpty(rid))
+            {
+                bitness.Add(new JProperty($"x64/{aspnetcoreV2Name}", new JObject(
+                    new JProperty("rid", "win7-x64"),
+                    new JProperty("assetType", "native")
+                )));
+                bitness.Add(new JProperty($"x86/{aspnetcoreV2Name}", new JObject(
+                    new JProperty("rid", "win7-x86"),
+                    new JProperty("assetType", "native")
+                )));
+            }
+            else
+            {
+                bitness.Add(new JProperty(aspnetcoreV2Name, new JObject(
+                    new JProperty("rid", rid),
+                    new JProperty("assetType", "native")
+                )));
+                var outputFolder = Path.GetDirectoryName(depsFile);
+                var bitnessString = rid.Substring(rid.Length - 3, 3);
+                File.Copy(Path.Combine(outputFolder, bitnessString, aspnetcoreV2Name), Path.Combine(outputFolder, aspnetcoreV2Name), overwrite: true);
+            }
+
             targetLibrary =
                 new JProperty(libraryName, new JObject(
-                    new JProperty("runtimeTargets", new JObject(
-                        new JProperty(libraryLocation.Replace('\\', '/'), new JObject(
-                            new JProperty("rid", rid),
-                            new JProperty("assetType", "native")
-                        ))))));
+                    new JProperty("runtimeTargets", bitness)));
+           
             target.AddFirst(targetLibrary);
 
             var library = libraries.Properties().FirstOrDefault(p => p.Name == libraryName);
             library?.Remove();
             library =
-                new JProperty(libraryName, new JObject(
-                    new JProperty("type", "package"),
-                    new JProperty("serviceable", true),
-                    new JProperty("sha512", ""),
-                    new JProperty("path", libraryName),
-                    new JProperty("hashPath", "")));
+                 new JProperty(libraryName, new JObject(
+                     new JProperty("type", "package"),
+                     new JProperty("serviceable", true),
+                     new JProperty("sha512", ""),
+                     new JProperty("path", libraryName),
+                     new JProperty("hashPath", "")));
             libraries.AddFirst(library);
-            
+
             using (var file = File.CreateText(depsFile))
             using (var writer = new JsonTextWriter(file) { Formatting = Formatting.Indented })
             {

+ 13 - 0
src/Servers/test/FunctionalTests/Directory.Build.props

@@ -0,0 +1,13 @@
+<Project>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
+
+  <PropertyGroup>
+    <!-- Deployers -->
+    <BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)obj\</BaseIntermediateOutputPath>
+    <BaseOutputPath>$(MSBuildThisFileDirectory)bin\</BaseOutputPath>
+  </PropertyGroup>
+
+  <ItemGroup Condition="'$(IsImplementationProject)' == 'true'">
+    <PackageReference Include="Internal.AspNetCore.Analyzers" PrivateAssets="All" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" />
+  </ItemGroup>
+</Project>

+ 1 - 1
src/ServerTests/test/ServerComparison.FunctionalTests/HelloWorldTest.cs → src/Servers/test/FunctionalTests/HelloWorldTest.cs

@@ -22,7 +22,7 @@ namespace ServerComparison.FunctionalTests
         public static TestMatrix TestVariants
             => TestMatrix.ForServers(ServerType.IISExpress, ServerType.Kestrel, /* ServerType.Nginx, https://github.com/aspnet/AspNetCore-Internal/issues/1525 */ ServerType.HttpSys)
                 .WithTfms(Tfm.NetCoreApp30)
-                .WithAllApplicationTypes()
+                .WithApplicationTypes(ApplicationType.Portable)
                 .WithAllAncmVersions()
                 .WithAllHostingModels()
                 .WithAllArchitectures();

+ 4 - 4
src/ServerTests/test/ServerComparison.FunctionalTests/Helpers.cs → src/Servers/test/FunctionalTests/Helpers.cs

@@ -1,4 +1,4 @@
-// Copyright (c) .NET Foundation. All rights reserved.
+// 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;
@@ -16,10 +16,10 @@ namespace ServerComparison.FunctionalTests
             var directoryInfo = new DirectoryInfo(applicationBasePath);
             do
             {
-                var solutionFileInfo = new FileInfo(Path.Combine(directoryInfo.FullName, "ServerTests.sln"));
+                var solutionFileInfo = new FileInfo(Path.Combine(directoryInfo.FullName, "FunctionalTests.sln"));
                 if (solutionFileInfo.Exists)
                 {
-                    return Path.GetFullPath(Path.Combine(directoryInfo.FullName, "test", "ServerComparison.TestSites"));
+                    return Path.GetFullPath(Path.Combine(directoryInfo.FullName, "testassets", "ServerComparison.TestSites"));
                 }
 
                 directoryInfo = directoryInfo.Parent;
@@ -36,4 +36,4 @@ namespace ServerComparison.FunctionalTests
             return content;
         }
     }
-}
+}

+ 0 - 0
src/ServerTests/test/ServerComparison.FunctionalTests/NoCompression.conf → src/Servers/test/FunctionalTests/NoCompression.conf


+ 0 - 0
src/ServerTests/test/ServerComparison.FunctionalTests/NtlmAuthenticationTest.cs → src/Servers/test/FunctionalTests/NtlmAuthenticationTest.cs


+ 0 - 0
src/ServerTests/test/ServerComparison.FunctionalTests/Properties/AssemblyInfo.cs → src/Servers/test/FunctionalTests/Properties/AssemblyInfo.cs


+ 0 - 0
src/ServerTests/test/ServerComparison.FunctionalTests/ResponseCompressionTests.cs → src/Servers/test/FunctionalTests/ResponseCompressionTests.cs


+ 0 - 0
src/ServerTests/test/ServerComparison.FunctionalTests/ResponseTests.cs → src/Servers/test/FunctionalTests/ResponseTests.cs


+ 20 - 0
src/Servers/test/FunctionalTests/ServerComparison.FunctionalTests.csproj

@@ -0,0 +1,20 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>netcoreapp3.0</TargetFramework>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Content Include="*.config;*.conf" CopyToPublishDirectory="PreserveNewest" CopyToOutputDirectory="PreserveNewest" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.Server.IntegrationTesting.IIS" />
+    <Reference Include="Microsoft.Extensions.Logging" />
+    <Reference Include="Microsoft.Extensions.Logging.Testing" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+    <Reference Include="Serilog.Extensions.Logging" />
+    <Reference Include="Serilog.Sinks.File" />
+  </ItemGroup>
+
+</Project>

+ 0 - 0
src/ServerTests/test/ServerComparison.FunctionalTests/nginx.conf → src/Servers/test/FunctionalTests/nginx.conf


+ 13 - 0
src/Servers/testassets/ServerComparison.TestSites/Directory.Build.props

@@ -0,0 +1,13 @@
+<Project>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory)..\, Directory.Build.props))\Directory.Build.props" />
+
+  <PropertyGroup>
+    <!-- Deployers -->
+    <BaseIntermediateOutputPath>$(MSBuildThisFileDirectory)obj\</BaseIntermediateOutputPath>
+    <BaseOutputPath>$(MSBuildThisFileDirectory)bin\</BaseOutputPath>
+  </PropertyGroup>
+
+  <ItemGroup Condition="'$(IsImplementationProject)' == 'true'">
+    <PackageReference Include="Internal.AspNetCore.Analyzers" PrivateAssets="All" Version="$(InternalAspNetCoreAnalyzersPackageVersion)" />
+  </ItemGroup>
+</Project>

+ 0 - 0
src/ServerTests/test/ServerComparison.TestSites/Program.cs → src/Servers/testassets/ServerComparison.TestSites/Program.cs


+ 24 - 0
src/Servers/testassets/ServerComparison.TestSites/ServerComparison.TestSites.csproj

@@ -0,0 +1,24 @@
+<Project Sdk="Microsoft.NET.Sdk.Web">
+
+  <Import Project="$(RepositoryRoot)src\Servers\IIS\build\testsite.props" />
+
+  <PropertyGroup>
+    <TargetFrameworks>netcoreapp3.0</TargetFrameworks>
+    <RuntimeIdentifiers>win7-x86;win7-x64;linux-x64;osx-x64</RuntimeIdentifiers>
+    <InProcessTestSite>true</InProcessTestSite>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Reference Include="Microsoft.AspNetCore.ResponseCompression" />
+    <Reference Include="Microsoft.AspNetCore.Server.HttpSys" />
+    <Reference Include="Microsoft.AspNetCore.Server.IIS" />
+    <Reference Include="Microsoft.AspNetCore.Server.IISIntegration" />
+    <Reference Include="Microsoft.AspNetCore.Server.Kestrel" />
+    <Reference Include="Microsoft.AspNetCore.WebUtilities" />
+    <Reference Include="Microsoft.Extensions.Configuration.CommandLine" />
+    <Reference Include="Microsoft.Extensions.Configuration.Json" />
+    <Reference Include="Microsoft.Extensions.Logging.Console" />
+    <Reference Include="Microsoft.Net.Http.Headers" />
+  </ItemGroup>
+
+</Project>

+ 0 - 0
src/ServerTests/test/ServerComparison.TestSites/Startup.cs → src/Servers/testassets/ServerComparison.TestSites/Startup.cs


+ 0 - 0
src/ServerTests/test/ServerComparison.TestSites/StartupNtlmAuthentication.cs → src/Servers/testassets/ServerComparison.TestSites/StartupNtlmAuthentication.cs


+ 0 - 0
src/ServerTests/test/ServerComparison.TestSites/StartupResponseCompression.cs → src/Servers/testassets/ServerComparison.TestSites/StartupResponseCompression.cs


+ 0 - 0
src/ServerTests/test/ServerComparison.TestSites/StartupResponses.cs → src/Servers/testassets/ServerComparison.TestSites/StartupResponses.cs