diff --git a/build/dependencies.props b/build/dependencies.props
index 7a1ec97818..3bba6726e8 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -19,7 +19,7 @@
2.2.0-preview1-34255
2.2.0-preview1-34255
2.2.0-preview1-34255
- 0.6.0-preview1-34255
+ 0.6.0-a-preview1-tratcher-x86-17041
2.2.0-preview1-34255
2.2.0-preview1-34255
2.2.0-preview1-34255
diff --git a/build/repo.props b/build/repo.props
index 1add62910e..5e78326f66 100644
--- a/build/repo.props
+++ b/build/repo.props
@@ -11,5 +11,8 @@
+
+
+
diff --git a/samples/MusicStore/Program.cs b/samples/MusicStore/Program.cs
index 195f5ec95e..03df598626 100644
--- a/samples/MusicStore/Program.cs
+++ b/samples/MusicStore/Program.cs
@@ -17,7 +17,6 @@ namespace MusicStore
.Build();
var builder = new WebHostBuilder()
- .UseContentRoot(Directory.GetCurrentDirectory())
.UseConfiguration(config)
.UseIISIntegration()
.UseStartup("MusicStore")
diff --git a/samples/MusicStore/Startup.cs b/samples/MusicStore/Startup.cs
index 2ca1de0f34..df643e027b 100644
--- a/samples/MusicStore/Startup.cs
+++ b/samples/MusicStore/Startup.cs
@@ -1,4 +1,5 @@
using System.Globalization;
+using System.Runtime.InteropServices;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
@@ -182,6 +183,12 @@ namespace MusicStore
SupportedUICultures = supportedCultures
});
+ app.Use((context, next) =>
+ {
+ context.Response.Headers["Arch"] = RuntimeInformation.ProcessArchitecture.ToString();
+ return next();
+ });
+
// Configure Session.
app.UseSession();
diff --git a/samples/MusicStore/StartupNtlmAuthentication.cs b/samples/MusicStore/StartupNtlmAuthentication.cs
index 136ea1a864..c6c57e540e 100644
--- a/samples/MusicStore/StartupNtlmAuthentication.cs
+++ b/samples/MusicStore/StartupNtlmAuthentication.cs
@@ -1,5 +1,6 @@
using System;
using System.Globalization;
+using System.Runtime.InteropServices;
using System.Security.Claims;
using System.Security.Principal;
using Microsoft.AspNetCore.Builder;
@@ -115,6 +116,12 @@ namespace MusicStore
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
+ app.Use((context, next) =>
+ {
+ context.Response.Headers["Arch"] = RuntimeInformation.ProcessArchitecture.ToString();
+ return next();
+ });
+
app.Use(async (context, next) =>
{
// Who will get admin access? For demo sake I'm listing the currently logged on user as the application
diff --git a/test/MusicStore.E2ETests/DotnetRunTests.cs b/test/MusicStore.E2ETests/DotnetRunTests.cs
index c9e6177d5f..c0f1648572 100644
--- a/test/MusicStore.E2ETests/DotnetRunTests.cs
+++ b/test/MusicStore.E2ETests/DotnetRunTests.cs
@@ -17,7 +17,6 @@ namespace E2ETests
{
public static TestMatrix TestVariants
=> TestMatrix.ForServers(ServerType.Kestrel)
- .WithAllApplicationTypes()
.WithTfms(Tfm.NetCoreApp22, Tfm.NetCoreApp21, Tfm.NetCoreApp20, Tfm.Net461);
[ConditionalTheory]
diff --git a/test/MusicStore.E2ETests/Implementation/Validator.cs b/test/MusicStore.E2ETests/Implementation/Validator.cs
index dfe425b2a6..de2848fc85 100644
--- a/test/MusicStore.E2ETests/Implementation/Validator.cs
+++ b/test/MusicStore.E2ETests/Implementation/Validator.cs
@@ -119,6 +119,12 @@ namespace E2ETests
Assert.Contains("MusicStore.Views, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", responseContent);
}
+ public void VerifyArchitecture(HttpResponseMessage response, RuntimeArchitecture arch)
+ {
+ Assert.True(response.Headers.TryGetValues("Arch", out var values), "Missing Arch header");
+ Assert.Equal(arch.ToString(), values.First(), ignoreCase: true);
+ }
+
public async Task VerifyNtlmHomePage(HttpResponseMessage response)
{
await VerifyHomePage(response, useNtlmAuthentication: true);
diff --git a/test/MusicStore.E2ETests/NtlmAuthentationTest.cs b/test/MusicStore.E2ETests/NtlmAuthentationTest.cs
index f54ac664a5..e390b6896a 100644
--- a/test/MusicStore.E2ETests/NtlmAuthentationTest.cs
+++ b/test/MusicStore.E2ETests/NtlmAuthentationTest.cs
@@ -18,7 +18,8 @@ namespace E2ETests
public static TestMatrix TestVariants
=> TestMatrix.ForServers(ServerType.IISExpress, ServerType.HttpSys)
.WithTfms(Tfm.NetCoreApp22, Tfm.NetCoreApp21, Tfm.NetCoreApp20, Tfm.Net461)
- .WithAllApplicationTypes();
+ .WithAllApplicationTypes()
+ .WithAllArchitectures();
[ConditionalTheory]
[MemberData(nameof(TestVariants))]
@@ -70,6 +71,9 @@ namespace E2ETests
logger.LogInformation("Verifying home page");
await validator.VerifyNtlmHomePage(response);
+ logger.LogInformation("Verifying architecture");
+ validator.VerifyArchitecture(response, deploymentResult.DeploymentParameters.RuntimeArchitecture);
+
logger.LogInformation("Verifying access to store with permissions");
await validator.AccessStoreWithPermissions();
diff --git a/test/MusicStore.E2ETests/PublishAndRunTests.cs b/test/MusicStore.E2ETests/PublishAndRunTests.cs
index d55e8e9254..36aba6ecf1 100644
--- a/test/MusicStore.E2ETests/PublishAndRunTests.cs
+++ b/test/MusicStore.E2ETests/PublishAndRunTests.cs
@@ -8,7 +8,6 @@ using Microsoft.AspNetCore.Testing.xunit;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Testing;
using Xunit;
-using Xunit.Abstractions;
namespace E2ETests
{
@@ -19,9 +18,7 @@ namespace E2ETests
=> TestMatrix.ForServers(ServerType.IISExpress, ServerType.Kestrel, ServerType.HttpSys)
.WithTfms(Tfm.NetCoreApp22, Tfm.NetCoreApp21, Tfm.NetCoreApp20, Tfm.Net461)
.WithAllApplicationTypes()
- .WithAllArchitectures()
- .Skip("https://github.com/aspnet/Hosting/issues/601",
- v => v.Tfm != Tfm.Net461 && v.Architecture == RuntimeArchitecture.x86);
+ .WithAllArchitectures();
[ConditionalTheory]
[MemberData(nameof(TestVariants))]
@@ -71,6 +68,9 @@ namespace E2ETests
logger.LogInformation("Verifying home page");
await validator.VerifyHomePage(response);
+ logger.LogInformation("Verifying architecture");
+ validator.VerifyArchitecture(response, deploymentResult.DeploymentParameters.RuntimeArchitecture);
+
logger.LogInformation("Verifying static files are served from static file middleware");
await validator.VerifyStaticContentServed();