#242 Delay registering the url until Build.
This commit is contained in:
parent
ffaa2cf460
commit
e94db64619
|
|
@ -20,27 +20,28 @@ namespace Microsoft.AspNetCore.Hosting
|
||||||
/// Configures the port and base path the server should listen on when running behind AspNetCoreModule.
|
/// Configures the port and base path the server should listen on when running behind AspNetCoreModule.
|
||||||
/// The app will also be configured to capture startup errors.
|
/// The app will also be configured to capture startup errors.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="app"></param>
|
/// <param name="hostBuilder"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static IWebHostBuilder UseIISIntegration(this IWebHostBuilder app)
|
public static IWebHostBuilder UseIISIntegration(this IWebHostBuilder hostBuilder)
|
||||||
{
|
{
|
||||||
if (app == null)
|
if (hostBuilder == null)
|
||||||
{
|
{
|
||||||
throw new ArgumentNullException(nameof(app));
|
throw new ArgumentNullException(nameof(hostBuilder));
|
||||||
}
|
}
|
||||||
|
|
||||||
var port = app.GetSetting(ServerPort) ?? Environment.GetEnvironmentVariable($"ASPNETCORE_{ServerPort}");
|
var port = hostBuilder.GetSetting(ServerPort) ?? Environment.GetEnvironmentVariable($"ASPNETCORE_{ServerPort}");
|
||||||
var path = app.GetSetting(ServerPath) ?? Environment.GetEnvironmentVariable($"ASPNETCORE_{ServerPath}");
|
var path = hostBuilder.GetSetting(ServerPath) ?? Environment.GetEnvironmentVariable($"ASPNETCORE_{ServerPath}");
|
||||||
var pairingToken = app.GetSetting(PairingToken) ?? Environment.GetEnvironmentVariable($"ASPNETCORE_{PairingToken}");
|
var pairingToken = hostBuilder.GetSetting(PairingToken) ?? Environment.GetEnvironmentVariable($"ASPNETCORE_{PairingToken}");
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(port) && !string.IsNullOrEmpty(path) && !string.IsNullOrEmpty(pairingToken))
|
if (!string.IsNullOrEmpty(port) && !string.IsNullOrEmpty(path) && !string.IsNullOrEmpty(pairingToken))
|
||||||
{
|
{
|
||||||
var address = "http://localhost:" + port + path;
|
var address = "http://localhost:" + port + path;
|
||||||
app.UseSetting(WebHostDefaults.ServerUrlsKey, address);
|
hostBuilder.CaptureStartupErrors(true);
|
||||||
app.CaptureStartupErrors(true);
|
|
||||||
|
|
||||||
app.ConfigureServices(services =>
|
hostBuilder.ConfigureServices(services =>
|
||||||
{
|
{
|
||||||
|
// Delay register the url so users don't accidently overwrite it.
|
||||||
|
hostBuilder.UseSetting(WebHostDefaults.ServerUrlsKey, address);
|
||||||
services.AddSingleton<IStartupFilter>(new IISSetupFilter(pairingToken));
|
services.AddSingleton<IStartupFilter>(new IISSetupFilter(pairingToken));
|
||||||
services.Configure<ForwardedHeadersOptions>(options =>
|
services.Configure<ForwardedHeadersOptions>(options =>
|
||||||
{
|
{
|
||||||
|
|
@ -56,7 +57,7 @@ namespace Microsoft.AspNetCore.Hosting
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return app;
|
return hostBuilder;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,23 @@ namespace Microsoft.AspNetCore.Server.IISIntegration
|
||||||
Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void UrlDelayRegistered()
|
||||||
|
{
|
||||||
|
var builder = new WebHostBuilder()
|
||||||
|
.UseSetting("TOKEN", "TestToken")
|
||||||
|
.UseSetting("PORT", "12345")
|
||||||
|
.UseSetting("APPL_PATH", "/")
|
||||||
|
.UseIISIntegration();
|
||||||
|
|
||||||
|
Assert.Null(builder.GetSetting(WebHostDefaults.ServerUrlsKey));
|
||||||
|
|
||||||
|
// Adds a server and calls Build()
|
||||||
|
var server = new TestServer(builder);
|
||||||
|
|
||||||
|
Assert.Equal("http://localhost:12345/", builder.GetSetting(WebHostDefaults.ServerUrlsKey));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task AddsAuthenticationHandlerByDefault()
|
public async Task AddsAuthenticationHandlerByDefault()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue