Rename WebApplication to WebHost
This commit is contained in:
parent
0673acedc4
commit
cad9ea1df7
|
|
@ -28,16 +28,14 @@ namespace SampleStartups
|
|||
// Entry point for the application.
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
var config = WebApplicationConfiguration.GetDefault(args);
|
||||
|
||||
var application = new WebApplicationBuilder()
|
||||
.UseConfiguration(config)
|
||||
var host = new WebHostBuilder()
|
||||
.UseDefaultConfiguration(args)
|
||||
.UseStartup<StartupBlockingOnStart>()
|
||||
.Build();
|
||||
|
||||
using (application)
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
host.Start();
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,15 +27,13 @@ namespace SampleStartups
|
|||
// Entry point for the application.
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
var config = WebApplicationConfiguration.GetDefault(args);
|
||||
|
||||
var application = new WebApplicationBuilder()
|
||||
.UseConfiguration(config)
|
||||
var host = new WebHostBuilder()
|
||||
.UseDefaultConfiguration(args)
|
||||
.UseStartup<StartupConfigureAddresses>()
|
||||
.UseUrls("http://localhost:5000", "http://localhost:5001")
|
||||
.Build();
|
||||
|
||||
application.Run();
|
||||
host.Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ namespace SampleStartups
|
|||
{
|
||||
public class StartupExternallyControlled
|
||||
{
|
||||
private IWebApplication _application;
|
||||
private IWebHost _host;
|
||||
private readonly List<string> _urls = new List<string>();
|
||||
|
||||
// This method gets called by the runtime. Use this method to add services to the container.
|
||||
|
|
@ -35,14 +35,14 @@ namespace SampleStartups
|
|||
|
||||
public void Start()
|
||||
{
|
||||
_application = new WebApplicationBuilder()
|
||||
_host = new WebHostBuilder()
|
||||
.UseStartup<StartupExternallyControlled>()
|
||||
.Start(_urls.ToArray());
|
||||
}
|
||||
|
||||
public void Stop()
|
||||
{
|
||||
_application.Dispose();
|
||||
_host.Dispose();
|
||||
}
|
||||
|
||||
public void AddUrl(string url)
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace SampleStartups
|
|||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
var application = new WebApplicationBuilder()
|
||||
var host = new WebHostBuilder()
|
||||
.UseServer("Microsoft.AspNet.Server.Kestrel") // Set the server manually
|
||||
.UseApplicationBasePath(Directory.GetCurrentDirectory()) // Override the application base with the current directory
|
||||
.UseUrls("http://*:1000", "https://*:902")
|
||||
|
|
@ -35,7 +35,7 @@ namespace SampleStartups
|
|||
})
|
||||
.Build();
|
||||
|
||||
application.Run();
|
||||
host.Run();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -27,14 +27,12 @@ namespace SampleStartups
|
|||
// Entry point for the application.
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
var config = WebApplicationConfiguration.GetDefault(args);
|
||||
|
||||
var application = new WebApplicationBuilder()
|
||||
.UseConfiguration(config)
|
||||
var host = new WebHostBuilder()
|
||||
.UseDefaultConfiguration(args)
|
||||
.UseStartup<StartupHelloWorld>()
|
||||
.Build();
|
||||
|
||||
application.Run();
|
||||
host.Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
/// of the "Hosting:Environment" (on Windows) or "Hosting__Environment" (on Linux & OS X) environment variable.
|
||||
/// </summary>
|
||||
// This must be settable!
|
||||
string EnvironmentName { get; set; }
|
||||
string EnvironmentName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the absolute path to the directory that contains the web-servable application content files.
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
// 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.Collections.Generic;
|
||||
using Microsoft.AspNet.Builder;
|
||||
using Microsoft.AspNet.Hosting.Server;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
public interface IWebApplicationBuilder
|
||||
{
|
||||
IWebApplication Build();
|
||||
|
||||
IDictionary<string, string> Settings { get; }
|
||||
|
||||
IWebApplicationBuilder UseConfiguration(IConfiguration configuration);
|
||||
|
||||
IWebApplicationBuilder UseServer(IServerFactory factory);
|
||||
|
||||
IWebApplicationBuilder UseStartup(Type startupType);
|
||||
|
||||
IWebApplicationBuilder ConfigureServices(Action<IServiceCollection> configureServices);
|
||||
|
||||
IWebApplicationBuilder Configure(Action<IApplicationBuilder> configureApplication);
|
||||
|
||||
IWebApplicationBuilder UseSetting(string key, string value);
|
||||
}
|
||||
}
|
||||
|
|
@ -7,9 +7,9 @@ using Microsoft.AspNet.Http.Features;
|
|||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a configured web application
|
||||
/// Represents a configured web host
|
||||
/// </summary>
|
||||
public interface IWebApplication : IDisposable
|
||||
public interface IWebHost : IDisposable
|
||||
{
|
||||
/// <summary>
|
||||
/// The <see cref="IFeatureCollection"/> exposed by the configured server.
|
||||
|
|
@ -17,7 +17,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
IFeatureCollection ServerFeatures { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The <see cref="IServiceProvider"/> for the application.
|
||||
/// The <see cref="IServiceProvider"/> for the host.
|
||||
/// </summary>
|
||||
IServiceProvider Services { get; }
|
||||
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
// 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.Collections.Generic;
|
||||
using Microsoft.AspNet.Builder;
|
||||
using Microsoft.AspNet.Hosting.Server;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
/// <summary>
|
||||
/// A builder for <see cref="IWebHost"/>
|
||||
/// </summary>
|
||||
public interface IWebHostBuilder
|
||||
{
|
||||
/// <summary>
|
||||
/// Builds an <see cref="IWebHost"/> which hosts a web application.
|
||||
/// </summary>
|
||||
IWebHost Build();
|
||||
|
||||
/// <summary>
|
||||
/// Gets the raw settings to be used by the web host. Values specified here will override
|
||||
/// the configuration set by <see cref="UseConfiguration(IConfiguration)"/>.
|
||||
/// </summary>
|
||||
IDictionary<string, string> Settings { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Specify the <see cref="IConfiguration"/> to be used by the web host. If no configuration is
|
||||
/// provided to the builder, the default configuration will be used.
|
||||
/// </summary>
|
||||
/// <param name="configuration">The <see cref="IConfiguration"/> to be used.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
IWebHostBuilder UseConfiguration(IConfiguration configuration);
|
||||
|
||||
/// <summary>
|
||||
/// Specify the <see cref="IServerFactory"/> to be used by the web host.
|
||||
/// </summary>
|
||||
/// <param name="factory">The <see cref="IServerFactory"/> to be used.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
IWebHostBuilder UseServer(IServerFactory factory);
|
||||
|
||||
/// <summary>
|
||||
/// Specify the startup type to be used by the web host.
|
||||
/// </summary>
|
||||
/// <param name="startupType">The <see cref="Type"/> to be used.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
IWebHostBuilder UseStartup(Type startupType);
|
||||
|
||||
/// <summary>
|
||||
/// Specify the delegate that is used to configure the services of the web application.
|
||||
/// </summary>
|
||||
/// <param name="configureServices">The delegate that configures the <see cref="IServiceCollection"/>.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
IWebHostBuilder ConfigureServices(Action<IServiceCollection> configureServices);
|
||||
|
||||
/// <summary>
|
||||
/// Specify the startup method to be used to configure the web application.
|
||||
/// </summary>
|
||||
/// <param name="configureApplication">The delegate that configures the <see cref="IApplicationBuilder"/>.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
IWebHostBuilder Configure(Action<IApplicationBuilder> configureApplication);
|
||||
|
||||
/// <summary>
|
||||
/// Add or replace a setting in <see cref="Settings"/>.
|
||||
/// </summary>
|
||||
/// <param name="key">The key of the setting to add or replace.</param>
|
||||
/// <param name="value">The value of the setting to add or replace.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
IWebHostBuilder UseSetting(string key, string value);
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
public static class WebApplicationDefaults
|
||||
public static class WebHostDefaults
|
||||
{
|
||||
public static readonly string ApplicationKey = "application";
|
||||
public static readonly string DetailedErrorsKey = "detailedErrors";
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
// 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.ServiceProcess;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
|
|
@ -10,25 +9,25 @@ namespace Microsoft.AspNet.Hosting.WindowsServices
|
|||
/// <summary>
|
||||
/// Provides an implementation of a Windows service that hosts ASP.NET.
|
||||
/// </summary>
|
||||
public class WebApplicationService : ServiceBase
|
||||
public class WebHostService : ServiceBase
|
||||
{
|
||||
private IWebApplication _application;
|
||||
private IWebHost _host;
|
||||
private bool _stopRequestedByWindows;
|
||||
|
||||
/// <summary>
|
||||
/// Creates an instance of <c>WebApplicationService</c> which hosts the specified web application.
|
||||
/// Creates an instance of <c>WebHostService</c> which hosts the specified web application.
|
||||
/// </summary>
|
||||
/// <param name="application">The web application to host in the Windows service.</param>
|
||||
public WebApplicationService(IWebApplication application)
|
||||
/// <param name="host">The configured web host containing the web application to host in the Windows service.</param>
|
||||
public WebHostService(IWebHost host)
|
||||
{
|
||||
_application = application;
|
||||
_host = host;
|
||||
}
|
||||
|
||||
protected sealed override void OnStart(string[] args)
|
||||
{
|
||||
OnStarting(args);
|
||||
|
||||
_application
|
||||
_host
|
||||
.Services
|
||||
.GetRequiredService<IApplicationLifetime>()
|
||||
.ApplicationStopped
|
||||
|
|
@ -40,7 +39,7 @@ namespace Microsoft.AspNet.Hosting.WindowsServices
|
|||
}
|
||||
});
|
||||
|
||||
_application.Start();
|
||||
_host.Start();
|
||||
|
||||
OnStarted();
|
||||
}
|
||||
|
|
@ -49,7 +48,7 @@ namespace Microsoft.AspNet.Hosting.WindowsServices
|
|||
{
|
||||
_stopRequestedByWindows = true;
|
||||
OnStopping();
|
||||
_application?.Dispose();
|
||||
_host?.Dispose();
|
||||
OnStopped();
|
||||
}
|
||||
|
||||
|
|
@ -6,37 +6,37 @@ using System.ServiceProcess;
|
|||
namespace Microsoft.AspNet.Hosting.WindowsServices
|
||||
{
|
||||
/// <summary>
|
||||
/// Extensions to <see cref="IWebApplication" for hosting inside a Windows service. />
|
||||
/// Extensions to <see cref="IWebHost" for hosting inside a Windows service. />
|
||||
/// </summary>
|
||||
public static class WebApplicationExtensions
|
||||
public static class WebHostWindowsServiceExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Runs the specified web application inside a Windows service and blocks until the service is stopped.
|
||||
/// </summary>
|
||||
/// <param name="application">An instance of the <see cref="IWebApplication"/> to host in the Windows service.</param>
|
||||
/// <param name="host">An instance of the <see cref="IWebHost"/> to host in the Windows service.</param>
|
||||
/// <example>
|
||||
/// This example shows how to use <see cref="WebApplicationService.Run"/>.
|
||||
/// This example shows how to use <see cref="WebHostService.Run"/>.
|
||||
/// <code>
|
||||
/// public class Program
|
||||
/// {
|
||||
/// public static void Main(string[] args)
|
||||
/// {
|
||||
/// var config = WebApplicationConfiguration.GetDefault(args);
|
||||
/// var config = WebHostConfiguration.GetDefault(args);
|
||||
///
|
||||
/// var application = new WebApplicationBuilder()
|
||||
/// var host = new WebHostBuilder()
|
||||
/// .UseConfiguration(config)
|
||||
/// .Build();
|
||||
///
|
||||
/// // This call will block until the service is stopped.
|
||||
/// application.RunAsService();
|
||||
/// host.RunAsService();
|
||||
/// }
|
||||
/// }
|
||||
/// </code>
|
||||
/// </example>
|
||||
public static void RunAsService(this IWebApplication application)
|
||||
public static void RunAsService(this IWebHost host)
|
||||
{
|
||||
var webApplicationService = new WebApplicationService(application);
|
||||
ServiceBase.Run(webApplicationService);
|
||||
var webHostService = new WebHostService(host);
|
||||
ServiceBase.Run(webHostService);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ namespace Microsoft.AspNet.Hosting.Internal
|
|||
{
|
||||
public static class HostingEnvironmentExtensions
|
||||
{
|
||||
public static void Initialize(this IHostingEnvironment hostingEnvironment, string applicationBasePath, WebApplicationOptions options, IConfiguration configuration)
|
||||
public static void Initialize(this IHostingEnvironment hostingEnvironment, string applicationBasePath, WebHostOptions options, IConfiguration configuration)
|
||||
{
|
||||
if (options == null)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -19,17 +19,17 @@ using Microsoft.Extensions.PlatformAbstractions;
|
|||
|
||||
namespace Microsoft.AspNet.Hosting.Internal
|
||||
{
|
||||
public class WebApplication : IWebApplication
|
||||
public class WebHost : IWebHost
|
||||
{
|
||||
private readonly IServiceCollection _applicationServiceCollection;
|
||||
private readonly IStartupLoader _startupLoader;
|
||||
private readonly ApplicationLifetime _applicationLifetime;
|
||||
private readonly WebApplicationOptions _options;
|
||||
private readonly WebHostOptions _options;
|
||||
private readonly IConfiguration _config;
|
||||
|
||||
private IServiceProvider _applicationServices;
|
||||
private RequestDelegate _application;
|
||||
private ILogger<WebApplication> _logger;
|
||||
private ILogger<WebHost> _logger;
|
||||
|
||||
// Only one of these should be set
|
||||
internal string StartupAssemblyName { get; set; }
|
||||
|
|
@ -41,10 +41,10 @@ namespace Microsoft.AspNet.Hosting.Internal
|
|||
internal string ServerFactoryLocation { get; set; }
|
||||
private IServer Server { get; set; }
|
||||
|
||||
public WebApplication(
|
||||
public WebHost(
|
||||
IServiceCollection appServices,
|
||||
IStartupLoader startupLoader,
|
||||
WebApplicationOptions options,
|
||||
WebHostOptions options,
|
||||
IConfiguration config)
|
||||
{
|
||||
if (appServices == null)
|
||||
|
|
@ -99,7 +99,7 @@ namespace Microsoft.AspNet.Hosting.Internal
|
|||
{
|
||||
Initialize();
|
||||
|
||||
_logger = _applicationServices.GetRequiredService<ILogger<WebApplication>>();
|
||||
_logger = _applicationServices.GetRequiredService<ILogger<WebHost>>();
|
||||
var diagnosticSource = _applicationServices.GetRequiredService<DiagnosticSource>();
|
||||
var httpContextFactory = _applicationServices.GetRequiredService<IHttpContextFactory>();
|
||||
|
||||
|
|
@ -183,7 +183,7 @@ namespace Microsoft.AspNet.Hosting.Internal
|
|||
|
||||
// Write errors to standard out so they can be retrieved when not in development mode.
|
||||
Console.Out.WriteLine("Application startup exception: " + ex.ToString());
|
||||
var logger = _applicationServices.GetRequiredService<ILogger<WebApplication>>();
|
||||
var logger = _applicationServices.GetRequiredService<ILogger<WebHost>>();
|
||||
logger.ApplicationError(ex);
|
||||
|
||||
// Generate an HTML error page.
|
||||
|
|
@ -6,28 +6,28 @@ using Microsoft.Extensions.Configuration;
|
|||
|
||||
namespace Microsoft.AspNet.Hosting.Internal
|
||||
{
|
||||
public class WebApplicationOptions
|
||||
public class WebHostOptions
|
||||
{
|
||||
private const string OldEnvironmentKey = "ENV";
|
||||
|
||||
public WebApplicationOptions()
|
||||
public WebHostOptions()
|
||||
{
|
||||
}
|
||||
|
||||
public WebApplicationOptions(IConfiguration configuration)
|
||||
public WebHostOptions(IConfiguration configuration)
|
||||
{
|
||||
if (configuration == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(configuration));
|
||||
}
|
||||
|
||||
Application = configuration[WebApplicationDefaults.ApplicationKey];
|
||||
DetailedErrors = ParseBool(configuration, WebApplicationDefaults.DetailedErrorsKey);
|
||||
CaptureStartupErrors = ParseBool(configuration, WebApplicationDefaults.CaptureStartupErrorsKey);
|
||||
Environment = configuration[WebApplicationDefaults.EnvironmentKey] ?? configuration[OldEnvironmentKey];
|
||||
ServerFactoryLocation = configuration[WebApplicationDefaults.ServerKey];
|
||||
WebRoot = configuration[WebApplicationDefaults.WebRootKey];
|
||||
ApplicationBasePath = configuration[WebApplicationDefaults.ApplicationBaseKey];
|
||||
Application = configuration[WebHostDefaults.ApplicationKey];
|
||||
DetailedErrors = ParseBool(configuration, WebHostDefaults.DetailedErrorsKey);
|
||||
CaptureStartupErrors = ParseBool(configuration, WebHostDefaults.CaptureStartupErrorsKey);
|
||||
Environment = configuration[WebHostDefaults.EnvironmentKey] ?? configuration[OldEnvironmentKey];
|
||||
ServerFactoryLocation = configuration[WebHostDefaults.ServerKey];
|
||||
WebRoot = configuration[WebHostDefaults.WebRootKey];
|
||||
ApplicationBasePath = configuration[WebHostDefaults.ApplicationBaseKey];
|
||||
}
|
||||
|
||||
public string Application { get; set; }
|
||||
|
|
@ -1,181 +0,0 @@
|
|||
// 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.Threading;
|
||||
using Microsoft.AspNet.Hosting.Server;
|
||||
using Microsoft.AspNet.Server.Features;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
public static class WebApplicationBuilderExtensions
|
||||
{
|
||||
private static readonly string ServerUrlsSeparator = ";";
|
||||
|
||||
public static IWebApplicationBuilder UseCaptureStartupErrors(this IWebApplicationBuilder applicationBuilder, bool captureStartupError)
|
||||
{
|
||||
return applicationBuilder.UseSetting(WebApplicationDefaults.CaptureStartupErrorsKey, captureStartupError ? "true" : "false");
|
||||
}
|
||||
|
||||
public static IWebApplicationBuilder UseStartup<TStartup>(this IWebApplicationBuilder applicationBuilder) where TStartup : class
|
||||
{
|
||||
return applicationBuilder.UseStartup(typeof(TStartup));
|
||||
}
|
||||
|
||||
public static IWebApplicationBuilder UseServer(this IWebApplicationBuilder applicationBuilder, string assemblyName)
|
||||
{
|
||||
if (assemblyName == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(assemblyName));
|
||||
}
|
||||
|
||||
return applicationBuilder.UseSetting(WebApplicationDefaults.ServerKey, assemblyName);
|
||||
}
|
||||
|
||||
public static IWebApplicationBuilder UseServer(this IWebApplicationBuilder applicationBuilder, IServer server)
|
||||
{
|
||||
if (server == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(server));
|
||||
}
|
||||
|
||||
return applicationBuilder.UseServer(new ServerFactory(server));
|
||||
}
|
||||
|
||||
public static IWebApplicationBuilder UseApplicationBasePath(this IWebApplicationBuilder applicationBuilder, string applicationBasePath)
|
||||
{
|
||||
if (applicationBasePath == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(applicationBasePath));
|
||||
}
|
||||
|
||||
return applicationBuilder.UseSetting(WebApplicationDefaults.ApplicationBaseKey, applicationBasePath);
|
||||
}
|
||||
|
||||
public static IWebApplicationBuilder UseEnvironment(this IWebApplicationBuilder applicationBuilder, string environment)
|
||||
{
|
||||
if (environment == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(environment));
|
||||
}
|
||||
|
||||
return applicationBuilder.UseSetting(WebApplicationDefaults.EnvironmentKey, environment);
|
||||
}
|
||||
|
||||
public static IWebApplicationBuilder UseWebRoot(this IWebApplicationBuilder applicationBuilder, string webRoot)
|
||||
{
|
||||
if (webRoot == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(webRoot));
|
||||
}
|
||||
|
||||
return applicationBuilder.UseSetting(WebApplicationDefaults.WebRootKey, webRoot);
|
||||
}
|
||||
|
||||
public static IWebApplicationBuilder UseUrls(this IWebApplicationBuilder applicationBuilder, params string[] urls)
|
||||
{
|
||||
if (urls == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(urls));
|
||||
}
|
||||
|
||||
return applicationBuilder.UseSetting(WebApplicationDefaults.ServerUrlsKey, string.Join(ServerUrlsSeparator, urls));
|
||||
}
|
||||
|
||||
public static IWebApplicationBuilder UseStartup(this IWebApplicationBuilder applicationBuilder, string startupAssemblyName)
|
||||
{
|
||||
if (startupAssemblyName == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(startupAssemblyName));
|
||||
}
|
||||
|
||||
return applicationBuilder.UseSetting(WebApplicationDefaults.ApplicationKey, startupAssemblyName);
|
||||
}
|
||||
|
||||
public static IWebApplication Start(this IWebApplicationBuilder applicationBuilder, params string[] urls)
|
||||
{
|
||||
var application = applicationBuilder.UseUrls(urls).Build();
|
||||
application.Start();
|
||||
return application;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Runs a web application and block the calling thread until host shutdown.
|
||||
/// </summary>
|
||||
/// <param name="application"></param>
|
||||
public static void Run(this IWebApplication application)
|
||||
{
|
||||
using (var cts = new CancellationTokenSource())
|
||||
{
|
||||
Console.CancelKeyPress += (sender, eventArgs) =>
|
||||
{
|
||||
cts.Cancel();
|
||||
|
||||
// Don't terminate the process immediately, wait for the Main thread to exit gracefully.
|
||||
eventArgs.Cancel = true;
|
||||
};
|
||||
|
||||
application.Run(cts.Token, "Application started. Press Ctrl+C to shut down.");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Runs a web application and block the calling thread until token is triggered or shutdown is triggered
|
||||
/// </summary>
|
||||
/// <param name="application"></param>
|
||||
/// <param name="token">The token to trigger shutdown</param>
|
||||
public static void Run(this IWebApplication application, CancellationToken token)
|
||||
{
|
||||
application.Run(token, shutdownMessage: null);
|
||||
}
|
||||
|
||||
private static void Run(this IWebApplication application, CancellationToken token, string shutdownMessage)
|
||||
{
|
||||
using (application)
|
||||
{
|
||||
application.Start();
|
||||
|
||||
var hostingEnvironment = application.Services.GetService<IHostingEnvironment>();
|
||||
var applicationLifetime = application.Services.GetService<IApplicationLifetime>();
|
||||
|
||||
Console.WriteLine("Hosting environment: " + hostingEnvironment.EnvironmentName);
|
||||
|
||||
var serverAddresses = application.ServerFeatures.Get<IServerAddressesFeature>()?.Addresses;
|
||||
if (serverAddresses != null)
|
||||
{
|
||||
foreach (var address in serverAddresses)
|
||||
{
|
||||
Console.WriteLine("Now listening on: " + address);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(shutdownMessage))
|
||||
{
|
||||
Console.WriteLine(shutdownMessage);
|
||||
}
|
||||
|
||||
token.Register(state =>
|
||||
{
|
||||
((IApplicationLifetime)state).StopApplication();
|
||||
},
|
||||
applicationLifetime);
|
||||
|
||||
applicationLifetime.ApplicationStopping.WaitHandle.WaitOne();
|
||||
}
|
||||
}
|
||||
|
||||
private class ServerFactory : IServerFactory
|
||||
{
|
||||
private readonly IServer _server;
|
||||
|
||||
public ServerFactory(IServer server)
|
||||
{
|
||||
_server = server;
|
||||
}
|
||||
|
||||
public IServer CreateServer(IConfiguration configuration) => _server;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -20,13 +20,16 @@ using Microsoft.Extensions.PlatformAbstractions;
|
|||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
public class WebApplicationBuilder : IWebApplicationBuilder
|
||||
/// <summary>
|
||||
/// A builder for <see cref="IWebHost"/>
|
||||
/// </summary>
|
||||
public class WebHostBuilder : IWebHostBuilder
|
||||
{
|
||||
private readonly IHostingEnvironment _hostingEnvironment;
|
||||
private readonly ILoggerFactory _loggerFactory;
|
||||
|
||||
private IConfiguration _config;
|
||||
private WebApplicationOptions _options;
|
||||
private WebHostOptions _options;
|
||||
|
||||
private Action<IServiceCollection> _configureServices;
|
||||
|
||||
|
|
@ -39,12 +42,16 @@ namespace Microsoft.AspNet.Hosting
|
|||
|
||||
private IDictionary<string, string> _settings = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
public WebApplicationBuilder()
|
||||
public WebHostBuilder()
|
||||
{
|
||||
_hostingEnvironment = new HostingEnvironment();
|
||||
_loggerFactory = new LoggerFactory();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the raw settings to be used by the web host. Values specified here will override
|
||||
/// the configuration set by <see cref="UseConfiguration(IConfiguration)"/>.
|
||||
/// </summary>
|
||||
public IDictionary<string, string> Settings
|
||||
{
|
||||
get
|
||||
|
|
@ -53,19 +60,36 @@ namespace Microsoft.AspNet.Hosting
|
|||
}
|
||||
}
|
||||
|
||||
public IWebApplicationBuilder UseSetting(string key, string value)
|
||||
/// <summary>
|
||||
/// Add or replace a setting in <see cref="Settings"/>.
|
||||
/// </summary>
|
||||
/// <param name="key">The key of the setting to add or replace.</param>
|
||||
/// <param name="value">The value of the setting to add or replace.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
public IWebHostBuilder UseSetting(string key, string value)
|
||||
{
|
||||
_settings[key] = value;
|
||||
return this;
|
||||
}
|
||||
|
||||
public IWebApplicationBuilder UseConfiguration(IConfiguration configuration)
|
||||
/// <summary>
|
||||
/// Specify the <see cref="IConfiguration"/> to be used by the web host. If no configuration is
|
||||
/// provided to the builder, the default configuration will be used.
|
||||
/// </summary>
|
||||
/// <param name="configuration">The <see cref="IConfiguration"/> to be used.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
public IWebHostBuilder UseConfiguration(IConfiguration configuration)
|
||||
{
|
||||
_config = configuration;
|
||||
return this;
|
||||
}
|
||||
|
||||
public IWebApplicationBuilder UseServer(IServerFactory factory)
|
||||
/// <summary>
|
||||
/// Specify the <see cref="IServerFactory"/> to be used by the web host.
|
||||
/// </summary>
|
||||
/// <param name="factory">The <see cref="IServerFactory"/> to be used.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
public IWebHostBuilder UseServer(IServerFactory factory)
|
||||
{
|
||||
if (factory == null)
|
||||
{
|
||||
|
|
@ -76,7 +100,12 @@ namespace Microsoft.AspNet.Hosting
|
|||
return this;
|
||||
}
|
||||
|
||||
public IWebApplicationBuilder UseStartup(Type startupType)
|
||||
/// <summary>
|
||||
/// Specify the startup type to be used by the web host.
|
||||
/// </summary>
|
||||
/// <param name="startupType">The <see cref="Type"/> to be used.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
public IWebHostBuilder UseStartup(Type startupType)
|
||||
{
|
||||
if (startupType == null)
|
||||
{
|
||||
|
|
@ -87,13 +116,23 @@ namespace Microsoft.AspNet.Hosting
|
|||
return this;
|
||||
}
|
||||
|
||||
public IWebApplicationBuilder ConfigureServices(Action<IServiceCollection> configureServices)
|
||||
/// <summary>
|
||||
/// Specify the delegate that is used to configure the services of the web application.
|
||||
/// </summary>
|
||||
/// <param name="configureServices">The delegate that configures the <see cref="IServiceCollection"/>.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
public IWebHostBuilder ConfigureServices(Action<IServiceCollection> configureServices)
|
||||
{
|
||||
_configureServices = configureServices;
|
||||
return this;
|
||||
}
|
||||
|
||||
public IWebApplicationBuilder Configure(Action<IApplicationBuilder> configureApp)
|
||||
/// <summary>
|
||||
/// Specify the startup method to be used to configure the web application.
|
||||
/// </summary>
|
||||
/// <param name="configureApplication">The delegate that configures the <see cref="IApplicationBuilder"/>.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
public IWebHostBuilder Configure(Action<IApplicationBuilder> configureApp)
|
||||
{
|
||||
if (configureApp == null)
|
||||
{
|
||||
|
|
@ -104,13 +143,21 @@ namespace Microsoft.AspNet.Hosting
|
|||
return this;
|
||||
}
|
||||
|
||||
public IWebApplicationBuilder ConfigureLogging(Action<ILoggerFactory> configureLogging)
|
||||
/// <summary>
|
||||
/// Configure the provided <see cref="ILoggerFactory"/> which will be available as a hosting service.
|
||||
/// </summary>
|
||||
/// <param name="configureLogging">The delegate that configures the <see cref="ILoggerFactory"/>.</param>
|
||||
/// <returns>The <see cref="IWebHostBuilder"/>.</returns>
|
||||
public IWebHostBuilder ConfigureLogging(Action<ILoggerFactory> configureLogging)
|
||||
{
|
||||
configureLogging(_loggerFactory);
|
||||
return this;
|
||||
}
|
||||
|
||||
public IWebApplication Build()
|
||||
/// <summary>
|
||||
/// Builds the required services and an <see cref="IWebHost"/> which hosts a web application.
|
||||
/// </summary>
|
||||
public IWebHost Build()
|
||||
{
|
||||
var hostingServices = BuildHostingServices();
|
||||
|
||||
|
|
@ -122,26 +169,26 @@ namespace Microsoft.AspNet.Hosting
|
|||
// Initialize the hosting environment
|
||||
_hostingEnvironment.Initialize(appEnvironment.ApplicationBasePath, _options, _config);
|
||||
|
||||
var application = new WebApplication(hostingServices, startupLoader, _options, _config);
|
||||
var host = new WebHost(hostingServices, startupLoader, _options, _config);
|
||||
|
||||
// Only one of these should be set, but they are used in priority
|
||||
application.ServerFactory = _serverFactory;
|
||||
application.ServerFactoryLocation = _options.ServerFactoryLocation;
|
||||
host.ServerFactory = _serverFactory;
|
||||
host.ServerFactoryLocation = _options.ServerFactoryLocation;
|
||||
|
||||
// Only one of these should be set, but they are used in priority
|
||||
application.Startup = _startup;
|
||||
application.StartupType = _startupType;
|
||||
application.StartupAssemblyName = _options.Application;
|
||||
host.Startup = _startup;
|
||||
host.StartupType = _startupType;
|
||||
host.StartupAssemblyName = _options.Application;
|
||||
|
||||
application.Initialize();
|
||||
host.Initialize();
|
||||
|
||||
return application;
|
||||
return host;
|
||||
}
|
||||
|
||||
private IServiceCollection BuildHostingServices()
|
||||
{
|
||||
// Apply the configuration settings
|
||||
var configuration = _config ?? WebApplicationConfiguration.GetDefault();
|
||||
var configuration = _config ?? WebHostConfiguration.GetDefault();
|
||||
|
||||
var mergedConfiguration = new ConfigurationBuilder()
|
||||
.Add(new IncludedConfigurationProvider(configuration))
|
||||
|
|
@ -149,7 +196,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
.Build();
|
||||
|
||||
_config = mergedConfiguration;
|
||||
_options = new WebApplicationOptions(_config);
|
||||
_options = new WebHostOptions(_config);
|
||||
|
||||
var services = new ServiceCollection();
|
||||
services.AddSingleton(_hostingEnvironment);
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
// 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 Microsoft.AspNet.Hosting.Server;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
public static class WebHostBuilderExtensions
|
||||
{
|
||||
private static readonly string ServerUrlsSeparator = ";";
|
||||
|
||||
public static IWebHostBuilder UseDefaultConfiguration(this IWebHostBuilder builder)
|
||||
{
|
||||
return builder.UseDefaultConfiguration(args: null);
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseDefaultConfiguration(this IWebHostBuilder builder, string[] args)
|
||||
{
|
||||
return builder.UseConfiguration(WebHostConfiguration.GetDefault(args));
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseCaptureStartupErrors(this IWebHostBuilder hostBuilder, bool captureStartupError)
|
||||
{
|
||||
return hostBuilder.UseSetting(WebHostDefaults.CaptureStartupErrorsKey, captureStartupError ? "true" : "false");
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseStartup<TStartup>(this IWebHostBuilder hostBuilder) where TStartup : class
|
||||
{
|
||||
return hostBuilder.UseStartup(typeof(TStartup));
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseServer(this IWebHostBuilder hostBuilder, string assemblyName)
|
||||
{
|
||||
if (assemblyName == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(assemblyName));
|
||||
}
|
||||
|
||||
return hostBuilder.UseSetting(WebHostDefaults.ServerKey, assemblyName);
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseServer(this IWebHostBuilder hostBuilder, IServer server)
|
||||
{
|
||||
if (server == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(server));
|
||||
}
|
||||
|
||||
return hostBuilder.UseServer(new ServerFactory(server));
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseApplicationBasePath(this IWebHostBuilder hostBuilder, string applicationBasePath)
|
||||
{
|
||||
if (applicationBasePath == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(applicationBasePath));
|
||||
}
|
||||
|
||||
return hostBuilder.UseSetting(WebHostDefaults.ApplicationBaseKey, applicationBasePath);
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseEnvironment(this IWebHostBuilder hostBuilder, string environment)
|
||||
{
|
||||
if (environment == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(environment));
|
||||
}
|
||||
|
||||
return hostBuilder.UseSetting(WebHostDefaults.EnvironmentKey, environment);
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseWebRoot(this IWebHostBuilder hostBuilder, string webRoot)
|
||||
{
|
||||
if (webRoot == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(webRoot));
|
||||
}
|
||||
|
||||
return hostBuilder.UseSetting(WebHostDefaults.WebRootKey, webRoot);
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseUrls(this IWebHostBuilder hostBuilder, params string[] urls)
|
||||
{
|
||||
if (urls == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(urls));
|
||||
}
|
||||
|
||||
return hostBuilder.UseSetting(WebHostDefaults.ServerUrlsKey, string.Join(ServerUrlsSeparator, urls));
|
||||
}
|
||||
|
||||
public static IWebHostBuilder UseStartup(this IWebHostBuilder hostBuilder, string startupAssemblyName)
|
||||
{
|
||||
if (startupAssemblyName == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(startupAssemblyName));
|
||||
}
|
||||
|
||||
return hostBuilder.UseSetting(WebHostDefaults.ApplicationKey, startupAssemblyName);
|
||||
}
|
||||
|
||||
public static IWebHost Start(this IWebHostBuilder hostBuilder, params string[] urls)
|
||||
{
|
||||
var host = hostBuilder.UseUrls(urls).Build();
|
||||
host.Start();
|
||||
return host;
|
||||
}
|
||||
|
||||
private class ServerFactory : IServerFactory
|
||||
{
|
||||
private readonly IServer _server;
|
||||
|
||||
public ServerFactory(IServer server)
|
||||
{
|
||||
_server = server;
|
||||
}
|
||||
|
||||
public IServer CreateServer(IConfiguration configuration) => _server;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@ using Microsoft.Extensions.Configuration;
|
|||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
public class WebApplicationConfiguration
|
||||
public class WebHostConfiguration
|
||||
{
|
||||
public static IConfiguration GetDefault()
|
||||
{
|
||||
|
|
@ -17,16 +17,16 @@ namespace Microsoft.AspNet.Hosting
|
|||
{
|
||||
var defaultSettings = new Dictionary<string, string>
|
||||
{
|
||||
{ WebApplicationDefaults.CaptureStartupErrorsKey, "true" }
|
||||
{ WebHostDefaults.CaptureStartupErrorsKey, "true" }
|
||||
};
|
||||
|
||||
// We are adding all environment variables first and then adding the ASPNET_ ones
|
||||
// with the prefix removed to unify with the command line and config file formats
|
||||
var configBuilder = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(defaultSettings)
|
||||
.AddJsonFile(WebApplicationDefaults.HostingJsonFile, optional: true)
|
||||
.AddJsonFile(WebHostDefaults.HostingJsonFile, optional: true)
|
||||
.AddEnvironmentVariables()
|
||||
.AddEnvironmentVariables(prefix: WebApplicationDefaults.EnvironmentVariablesPrefix);
|
||||
.AddEnvironmentVariables(prefix: WebHostDefaults.EnvironmentVariablesPrefix);
|
||||
|
||||
if (args != null)
|
||||
{
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
// 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.Threading;
|
||||
using Microsoft.AspNet.Server.Features;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
public static class WebHostExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Runs a web application and block the calling thread until host shutdown.
|
||||
/// </summary>
|
||||
/// <param name="host"></param>
|
||||
public static void Run(this IWebHost host)
|
||||
{
|
||||
using (var cts = new CancellationTokenSource())
|
||||
{
|
||||
Console.CancelKeyPress += (sender, eventArgs) =>
|
||||
{
|
||||
cts.Cancel();
|
||||
|
||||
// Don't terminate the process immediately, wait for the Main thread to exit gracefully.
|
||||
eventArgs.Cancel = true;
|
||||
};
|
||||
|
||||
host.Run(cts.Token, "Application started. Press Ctrl+C to shut down.");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Runs a web application and block the calling thread until token is triggered or shutdown is triggered
|
||||
/// </summary>
|
||||
/// <param name="host"></param>
|
||||
/// <param name="token">The token to trigger shutdown</param>
|
||||
public static void Run(this IWebHost host, CancellationToken token)
|
||||
{
|
||||
host.Run(token, shutdownMessage: null);
|
||||
}
|
||||
|
||||
private static void Run(this IWebHost host, CancellationToken token, string shutdownMessage)
|
||||
{
|
||||
using (host)
|
||||
{
|
||||
host.Start();
|
||||
|
||||
var hostingEnvironment = host.Services.GetService<IHostingEnvironment>();
|
||||
var applicationLifetime = host.Services.GetService<IApplicationLifetime>();
|
||||
|
||||
Console.WriteLine("Hosting environment: " + hostingEnvironment.EnvironmentName);
|
||||
|
||||
var serverAddresses = host.ServerFeatures.Get<IServerAddressesFeature>()?.Addresses;
|
||||
if (serverAddresses != null)
|
||||
{
|
||||
foreach (var address in serverAddresses)
|
||||
{
|
||||
Console.WriteLine("Now listening on: " + address);
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(shutdownMessage))
|
||||
{
|
||||
Console.WriteLine(shutdownMessage);
|
||||
}
|
||||
|
||||
token.Register(state =>
|
||||
{
|
||||
((IApplicationLifetime)state).StopApplication();
|
||||
},
|
||||
applicationLifetime);
|
||||
|
||||
applicationLifetime.ApplicationStopping.WaitHandle.WaitOne();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -16,29 +16,29 @@ namespace Microsoft.AspNet.TestHost
|
|||
{
|
||||
private const string DefaultEnvironmentName = "Development";
|
||||
private const string ServerName = nameof(TestServer);
|
||||
private IWebApplication _appInstance;
|
||||
private IWebHost _hostInstance;
|
||||
private bool _disposed = false;
|
||||
private IHttpApplication<Context> _application;
|
||||
|
||||
public TestServer(IWebApplicationBuilder builder)
|
||||
public TestServer(IWebHostBuilder builder)
|
||||
{
|
||||
if (!builder.Settings.ContainsKey(WebApplicationDefaults.CaptureStartupErrorsKey))
|
||||
if (!builder.Settings.ContainsKey(WebHostDefaults.CaptureStartupErrorsKey))
|
||||
{
|
||||
builder.UseCaptureStartupErrors(false);
|
||||
}
|
||||
|
||||
var application = builder.UseServer(this).Build();
|
||||
application.Start();
|
||||
_appInstance = application;
|
||||
var host = builder.UseServer(this).Build();
|
||||
host.Start();
|
||||
_hostInstance = host;
|
||||
}
|
||||
|
||||
public Uri BaseAddress { get; set; } = new Uri("http://localhost/");
|
||||
|
||||
public IWebApplication Application
|
||||
public IWebHost Host
|
||||
{
|
||||
get
|
||||
{
|
||||
return _appInstance;
|
||||
return _hostInstance;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
if (!_disposed)
|
||||
{
|
||||
_disposed = true;
|
||||
_appInstance.Dispose();
|
||||
_hostInstance.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Microsoft.AspNet.Hosting.Tests
|
|||
{
|
||||
var env = new HostingEnvironment();
|
||||
|
||||
env.Initialize(".", new WebApplicationOptions() {WebRoot = "testroot"}, null);
|
||||
env.Initialize(".", new WebHostOptions() {WebRoot = "testroot"}, null);
|
||||
|
||||
Assert.Equal(Path.GetFullPath("testroot"), env.WebRootPath);
|
||||
Assert.IsAssignableFrom<PhysicalFileProvider>(env.WebRootFileProvider);
|
||||
|
|
@ -28,7 +28,7 @@ namespace Microsoft.AspNet.Hosting.Tests
|
|||
{
|
||||
var env = new HostingEnvironment();
|
||||
|
||||
env.Initialize("testroot", new WebApplicationOptions(), null);
|
||||
env.Initialize("testroot", new WebHostOptions(), null);
|
||||
|
||||
Assert.Equal(Path.GetFullPath(Path.Combine("testroot","wwwroot")), env.WebRootPath);
|
||||
Assert.IsAssignableFrom<PhysicalFileProvider>(env.WebRootFileProvider);
|
||||
|
|
@ -39,7 +39,7 @@ namespace Microsoft.AspNet.Hosting.Tests
|
|||
{
|
||||
var env = new HostingEnvironment();
|
||||
|
||||
env.Initialize(Path.Combine("testroot", "wwwroot"), new WebApplicationOptions(), null);
|
||||
env.Initialize(Path.Combine("testroot", "wwwroot"), new WebHostOptions(), null);
|
||||
|
||||
Assert.Null(env.WebRootPath);
|
||||
Assert.IsAssignableFrom<NullFileProvider>(env.WebRootFileProvider);
|
||||
|
|
@ -51,7 +51,7 @@ namespace Microsoft.AspNet.Hosting.Tests
|
|||
var config = new ConfigurationBuilder().Build();
|
||||
var env = new HostingEnvironment();
|
||||
|
||||
env.Initialize(".", new WebApplicationOptions(), config);
|
||||
env.Initialize(".", new WebHostOptions(), config);
|
||||
|
||||
Assert.Same(config, env.Configuration);
|
||||
}
|
||||
|
|
@ -62,7 +62,7 @@ namespace Microsoft.AspNet.Hosting.Tests
|
|||
var env = new HostingEnvironment();
|
||||
env.EnvironmentName = "SomeName";
|
||||
|
||||
env.Initialize(".", new WebApplicationOptions() { Environment = "NewName" }, null);
|
||||
env.Initialize(".", new WebHostOptions() { Environment = "NewName" }, null);
|
||||
|
||||
Assert.Equal("NewName", env.EnvironmentName);
|
||||
}
|
||||
|
|
@ -72,7 +72,7 @@ namespace Microsoft.AspNet.Hosting.Tests
|
|||
{
|
||||
var env = new HostingEnvironment();
|
||||
|
||||
env.Initialize(".", new WebApplicationOptions(), null);
|
||||
env.Initialize(".", new WebHostOptions(), null);
|
||||
|
||||
Assert.Throws<InvalidOperationException>(() => env.MapPath("file.txt"));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,27 +18,27 @@ using Xunit;
|
|||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
public class WebApplicationBuilderTests
|
||||
public class WebHostBuilderTests
|
||||
{
|
||||
[Fact]
|
||||
public void Build_honors_UseStartup_with_string()
|
||||
{
|
||||
var builder = CreateWebApplicationBuilder().UseServer(new TestServer());
|
||||
var builder = CreateWebHostBuilder().UseServer(new TestServer());
|
||||
|
||||
var application = (WebApplication)builder.UseStartup("MyStartupAssembly").Build();
|
||||
var host = (WebHost)builder.UseStartup("MyStartupAssembly").Build();
|
||||
|
||||
Assert.Equal("MyStartupAssembly", application.StartupAssemblyName);
|
||||
Assert.Equal("MyStartupAssembly", host.StartupAssemblyName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task StartupMissing_Fallback()
|
||||
{
|
||||
var builder = CreateWebApplicationBuilder();
|
||||
var builder = CreateWebHostBuilder();
|
||||
var server = new TestServer();
|
||||
var application = builder.UseServer(server).UseStartup("MissingStartupAssembly").Build();
|
||||
using (application)
|
||||
var host = builder.UseServer(server).UseStartup("MissingStartupAssembly").Build();
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
host.Start();
|
||||
await AssertResponseContains(server.RequestDelegate, "MissingStartupAssembly");
|
||||
}
|
||||
}
|
||||
|
|
@ -46,12 +46,12 @@ namespace Microsoft.AspNet.Hosting
|
|||
[Fact]
|
||||
public async Task StartupStaticCtorThrows_Fallback()
|
||||
{
|
||||
var builder = CreateWebApplicationBuilder();
|
||||
var builder = CreateWebHostBuilder();
|
||||
var server = new TestServer();
|
||||
var application = builder.UseServer(server).UseStartup<StartupStaticCtorThrows>().Build();
|
||||
using (application)
|
||||
var host = builder.UseServer(server).UseStartup<StartupStaticCtorThrows>().Build();
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
host.Start();
|
||||
await AssertResponseContains(server.RequestDelegate, "Exception from static constructor");
|
||||
}
|
||||
}
|
||||
|
|
@ -59,12 +59,12 @@ namespace Microsoft.AspNet.Hosting
|
|||
[Fact]
|
||||
public async Task StartupCtorThrows_Fallback()
|
||||
{
|
||||
var builder = CreateWebApplicationBuilder();
|
||||
var builder = CreateWebHostBuilder();
|
||||
var server = new TestServer();
|
||||
var application = builder.UseServer(server).UseStartup<StartupCtorThrows>().Build();
|
||||
using (application)
|
||||
var host = builder.UseServer(server).UseStartup<StartupCtorThrows>().Build();
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
host.Start();
|
||||
await AssertResponseContains(server.RequestDelegate, "Exception from constructor");
|
||||
}
|
||||
}
|
||||
|
|
@ -72,12 +72,12 @@ namespace Microsoft.AspNet.Hosting
|
|||
[Fact]
|
||||
public async Task StartupCtorThrows_TypeLoadException()
|
||||
{
|
||||
var builder = CreateWebApplicationBuilder();
|
||||
var builder = CreateWebHostBuilder();
|
||||
var server = new TestServer();
|
||||
var application = builder.UseServer(server).UseStartup<StartupThrowTypeLoadException>().Build();
|
||||
using (application)
|
||||
var host = builder.UseServer(server).UseStartup<StartupThrowTypeLoadException>().Build();
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
host.Start();
|
||||
await AssertResponseContains(server.RequestDelegate, "Message from the LoaderException</span>");
|
||||
}
|
||||
}
|
||||
|
|
@ -85,13 +85,13 @@ namespace Microsoft.AspNet.Hosting
|
|||
[Fact]
|
||||
public async Task IApplicationLifetimeRegisteredEvenWhenStartupCtorThrows_Fallback()
|
||||
{
|
||||
var builder = CreateWebApplicationBuilder();
|
||||
var builder = CreateWebHostBuilder();
|
||||
var server = new TestServer();
|
||||
var application = builder.UseServer(server).UseStartup<StartupCtorThrows>().Build();
|
||||
using (application)
|
||||
var host = builder.UseServer(server).UseStartup<StartupCtorThrows>().Build();
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
var service = application.Services.GetServices<IApplicationLifetime>();
|
||||
host.Start();
|
||||
var service = host.Services.GetServices<IApplicationLifetime>();
|
||||
Assert.NotNull(service);
|
||||
await AssertResponseContains(server.RequestDelegate, "Exception from constructor");
|
||||
}
|
||||
|
|
@ -100,12 +100,12 @@ namespace Microsoft.AspNet.Hosting
|
|||
[Fact]
|
||||
public async Task StartupConfigureServicesThrows_Fallback()
|
||||
{
|
||||
var builder = CreateWebApplicationBuilder();
|
||||
var builder = CreateWebHostBuilder();
|
||||
var server = new TestServer();
|
||||
var application = builder.UseServer(server).UseStartup<StartupConfigureServicesThrows>().Build();
|
||||
using (application)
|
||||
var host = builder.UseServer(server).UseStartup<StartupConfigureServicesThrows>().Build();
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
host.Start();
|
||||
await AssertResponseContains(server.RequestDelegate, "Exception from ConfigureServices");
|
||||
}
|
||||
}
|
||||
|
|
@ -113,12 +113,12 @@ namespace Microsoft.AspNet.Hosting
|
|||
[Fact]
|
||||
public async Task StartupConfigureThrows_Fallback()
|
||||
{
|
||||
var builder = CreateWebApplicationBuilder();
|
||||
var builder = CreateWebHostBuilder();
|
||||
var server = new TestServer();
|
||||
var application = builder.UseServer(server).UseStartup<StartupConfigureServicesThrows>().Build();
|
||||
using (application)
|
||||
var host = builder.UseServer(server).UseStartup<StartupConfigureServicesThrows>().Build();
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
host.Start();
|
||||
await AssertResponseContains(server.RequestDelegate, "Exception from Configure");
|
||||
}
|
||||
}
|
||||
|
|
@ -126,23 +126,23 @@ namespace Microsoft.AspNet.Hosting
|
|||
[Fact]
|
||||
public void CaptureStartupErrorsByDefault()
|
||||
{
|
||||
var applicationBuilder = new WebApplicationBuilder()
|
||||
var hostBuilder = new WebHostBuilder()
|
||||
.UseServer(new TestServer())
|
||||
.UseStartup<StartupBoom>();
|
||||
|
||||
// This should not throw
|
||||
applicationBuilder.Build();
|
||||
hostBuilder.Build();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void UseCaptureStartupErrorsHonored()
|
||||
{
|
||||
var applicationBuilder = new WebApplicationBuilder()
|
||||
var hostBuilder = new WebHostBuilder()
|
||||
.UseCaptureStartupErrors(false)
|
||||
.UseServer(new TestServer())
|
||||
.UseStartup<StartupBoom>();
|
||||
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => applicationBuilder.Build());
|
||||
var exception = Assert.Throws<InvalidOperationException>(() => hostBuilder.Build());
|
||||
Assert.Equal("A public method named 'ConfigureProduction' or 'Configure' could not be found in the 'Microsoft.AspNet.Hosting.Fakes.StartupBoom' type.", exception.Message);
|
||||
}
|
||||
|
||||
|
|
@ -158,14 +158,14 @@ namespace Microsoft.AspNet.Hosting
|
|||
var config = builder.Build();
|
||||
|
||||
var expected = "MY_TEST_ENVIRONMENT";
|
||||
var application = new WebApplicationBuilder()
|
||||
var host = new WebHostBuilder()
|
||||
.UseConfiguration(config)
|
||||
.UseEnvironment(expected)
|
||||
.UseServer(new TestServer())
|
||||
.UseStartup("Microsoft.AspNet.Hosting.Tests")
|
||||
.Build();
|
||||
|
||||
Assert.Equal(expected, application.Services.GetService<IHostingEnvironment>().EnvironmentName);
|
||||
Assert.Equal(expected, host.Services.GetService<IHostingEnvironment>().EnvironmentName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -180,14 +180,14 @@ namespace Microsoft.AspNet.Hosting
|
|||
var config = builder.Build();
|
||||
|
||||
var expected = "MY_TEST_ENVIRONMENT";
|
||||
var application = new WebApplicationBuilder()
|
||||
var host = new WebHostBuilder()
|
||||
.UseConfiguration(config)
|
||||
.UseEnvironment(expected)
|
||||
.UseServer(new TestServer())
|
||||
.UseStartup("Microsoft.AspNet.Hosting.Tests")
|
||||
.Build();
|
||||
|
||||
application.Dispose();
|
||||
host.Dispose();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -201,17 +201,17 @@ namespace Microsoft.AspNet.Hosting
|
|||
.AddInMemoryCollection(vals);
|
||||
var config = builder.Build();
|
||||
|
||||
var application = new WebApplicationBuilder()
|
||||
var host = new WebHostBuilder()
|
||||
.UseConfiguration(config)
|
||||
.UseApplicationBasePath("/foo/bar")
|
||||
.UseServer(new TestServer())
|
||||
.UseStartup("Microsoft.AspNet.Hosting.Tests")
|
||||
.Build();
|
||||
|
||||
Assert.Equal("/foo/bar", application.Services.GetService<IApplicationEnvironment>().ApplicationBasePath);
|
||||
Assert.Equal("/foo/bar", host.Services.GetService<IApplicationEnvironment>().ApplicationBasePath);
|
||||
}
|
||||
|
||||
private IWebApplicationBuilder CreateWebApplicationBuilder()
|
||||
private IWebHostBuilder CreateWebHostBuilder()
|
||||
{
|
||||
var vals = new Dictionary<string, string>
|
||||
{
|
||||
|
|
@ -221,7 +221,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
var builder = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(vals);
|
||||
var config = builder.Build();
|
||||
return new WebApplicationBuilder().UseConfiguration(config);
|
||||
return new WebHostBuilder().UseConfiguration(config);
|
||||
}
|
||||
|
||||
private async Task AssertResponseContains(RequestDelegate app, string expectedText)
|
||||
|
|
@ -8,12 +8,12 @@ using Xunit;
|
|||
|
||||
namespace Microsoft.AspNet.Hosting.Tests
|
||||
{
|
||||
public class WebApplicationConfigurationTests
|
||||
public class WebHostConfigurationTests
|
||||
{
|
||||
[Fact]
|
||||
public void DefaultCapturesStartupErrors()
|
||||
{
|
||||
var config = new WebApplicationOptions(WebApplicationConfiguration.GetDefault());
|
||||
var config = new WebHostOptions(WebHostConfiguration.GetDefault());
|
||||
|
||||
Assert.True(config.CaptureStartupErrors);
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ namespace Microsoft.AspNet.Hosting.Tests
|
|||
{ "captureStartupErrors", "true" }
|
||||
};
|
||||
|
||||
var config = new WebApplicationOptions(new ConfigurationBuilder().AddInMemoryCollection(parameters).Build());
|
||||
var config = new WebHostOptions(new ConfigurationBuilder().AddInMemoryCollection(parameters).Build());
|
||||
|
||||
Assert.Equal("wwwroot", config.WebRoot);
|
||||
Assert.Equal("Microsoft.AspNet.Server.Kestrel", config.ServerFactoryLocation);
|
||||
|
|
@ -45,7 +45,7 @@ namespace Microsoft.AspNet.Hosting.Tests
|
|||
public void ReadsOldEnvKey()
|
||||
{
|
||||
var parameters = new Dictionary<string, string>() { { "ENV", "Development" } };
|
||||
var config = new WebApplicationOptions(new ConfigurationBuilder().AddInMemoryCollection(parameters).Build());
|
||||
var config = new WebHostOptions(new ConfigurationBuilder().AddInMemoryCollection(parameters).Build());
|
||||
|
||||
Assert.Equal("Development", config.Environment);
|
||||
}
|
||||
|
|
@ -56,7 +56,7 @@ namespace Microsoft.AspNet.Hosting.Tests
|
|||
public void AllowsNumberForDetailedErrors(string value, bool expected)
|
||||
{
|
||||
var parameters = new Dictionary<string, string>() { { "detailedErrors", value } };
|
||||
var config = new WebApplicationOptions(new ConfigurationBuilder().AddInMemoryCollection(parameters).Build());
|
||||
var config = new WebHostOptions(new ConfigurationBuilder().AddInMemoryCollection(parameters).Build());
|
||||
|
||||
Assert.Equal(expected, config.DetailedErrors);
|
||||
}
|
||||
|
|
@ -25,7 +25,7 @@ using Xunit;
|
|||
|
||||
namespace Microsoft.AspNet.Hosting
|
||||
{
|
||||
public class WebApplicationTests : IServerFactory, IServer
|
||||
public class WebHostTests : IServerFactory, IServer
|
||||
{
|
||||
private readonly IList<StartInstance> _startInstances = new List<StartInstance>();
|
||||
private IFeatureCollection _featuresSupportedByThisHost = NewFeatureCollection();
|
||||
|
|
@ -64,7 +64,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplicationThrowsWithNoServer()
|
||||
public void WebHostThrowsWithNoServer()
|
||||
{
|
||||
var ex = Assert.Throws<InvalidOperationException>(() => CreateBuilder().Build().Start());
|
||||
Assert.True(ex.Message.Contains("UseServer()"));
|
||||
|
|
@ -87,9 +87,9 @@ namespace Microsoft.AspNet.Hosting
|
|||
var builder = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(vals);
|
||||
var config = builder.Build();
|
||||
var application = CreateBuilder(config).Build();
|
||||
application.Start();
|
||||
Assert.NotNull(application.Services.GetService<IHostingEnvironment>());
|
||||
var host = CreateBuilder(config).Build();
|
||||
host.Start();
|
||||
Assert.NotNull(host.Services.GetService<IHostingEnvironment>());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -103,9 +103,9 @@ namespace Microsoft.AspNet.Hosting
|
|||
var builder = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(vals);
|
||||
var config = builder.Build();
|
||||
var application = CreateBuilder(config).Build();
|
||||
application.Start();
|
||||
Assert.NotNull(application.Services.GetService<IHostingEnvironment>());
|
||||
var host = CreateBuilder(config).Build();
|
||||
host.Start();
|
||||
Assert.NotNull(host.Services.GetService<IHostingEnvironment>());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -119,10 +119,10 @@ namespace Microsoft.AspNet.Hosting
|
|||
var builder = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(vals);
|
||||
var config = builder.Build();
|
||||
var application = CreateBuilder(config).Build();
|
||||
application.Start();
|
||||
Assert.NotNull(application.Services.GetService<IHostingEnvironment>());
|
||||
Assert.Equal("http://localhost:5000", application.ServerFeatures.Get<IServerAddressesFeature>().Addresses.First());
|
||||
var host = CreateBuilder(config).Build();
|
||||
host.Start();
|
||||
Assert.NotNull(host.Services.GetService<IHostingEnvironment>());
|
||||
Assert.Equal("http://localhost:5000", host.ServerFeatures.Get<IServerAddressesFeature>().Addresses.First());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
|
@ -136,45 +136,45 @@ namespace Microsoft.AspNet.Hosting
|
|||
var builder = new ConfigurationBuilder()
|
||||
.AddInMemoryCollection(vals);
|
||||
var config = builder.Build();
|
||||
var application = CreateBuilder(config).Build();
|
||||
application.Start();
|
||||
var hostingEnvironment = application.Services.GetService<IHostingEnvironment>();
|
||||
var host = CreateBuilder(config).Build();
|
||||
host.Start();
|
||||
var hostingEnvironment = host.Services.GetService<IHostingEnvironment>();
|
||||
Assert.NotNull(hostingEnvironment.Configuration);
|
||||
Assert.Equal("Microsoft.AspNet.Hosting.Tests", hostingEnvironment.Configuration["Server"]);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplicationCanBeStarted()
|
||||
public void WebHostCanBeStarted()
|
||||
{
|
||||
var app = CreateBuilder()
|
||||
var host = CreateBuilder()
|
||||
.UseServer((IServerFactory)this)
|
||||
.UseStartup("Microsoft.AspNet.Hosting.Tests")
|
||||
.Start();
|
||||
|
||||
Assert.NotNull(app);
|
||||
Assert.NotNull(host);
|
||||
Assert.Equal(1, _startInstances.Count);
|
||||
Assert.Equal(0, _startInstances[0].DisposeCalls);
|
||||
|
||||
app.Dispose();
|
||||
host.Dispose();
|
||||
|
||||
Assert.Equal(1, _startInstances[0].DisposeCalls);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplicationShutsDownWhenTokenTriggers()
|
||||
public void WebHostShutsDownWhenTokenTriggers()
|
||||
{
|
||||
var app = CreateBuilder()
|
||||
var host = CreateBuilder()
|
||||
.UseServer((IServerFactory)this)
|
||||
.UseStartup("Microsoft.AspNet.Hosting.Tests")
|
||||
.Build();
|
||||
|
||||
var lifetime = app.Services.GetRequiredService<IApplicationLifetime>();
|
||||
var lifetime = host.Services.GetRequiredService<IApplicationLifetime>();
|
||||
|
||||
var cts = new CancellationTokenSource();
|
||||
|
||||
Task.Run(() => app.Run(cts.Token));
|
||||
Task.Run(() => host.Run(cts.Token));
|
||||
|
||||
// Wait on the app to be started
|
||||
// Wait on the host to be started
|
||||
lifetime.ApplicationStarted.WaitHandle.WaitOne();
|
||||
|
||||
Assert.Equal(1, _startInstances.Count);
|
||||
|
|
@ -182,16 +182,16 @@ namespace Microsoft.AspNet.Hosting
|
|||
|
||||
cts.Cancel();
|
||||
|
||||
// Wait on the app to shutdown
|
||||
// Wait on the host to shutdown
|
||||
lifetime.ApplicationStopped.WaitHandle.WaitOne();
|
||||
|
||||
Assert.Equal(1, _startInstances[0].DisposeCalls);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplicationDisposesServiceProvider()
|
||||
public void WebHostDisposesServiceProvider()
|
||||
{
|
||||
var application = CreateBuilder()
|
||||
var host = CreateBuilder()
|
||||
.UseServer((IServerFactory)this)
|
||||
.ConfigureServices(s =>
|
||||
{
|
||||
|
|
@ -201,49 +201,49 @@ namespace Microsoft.AspNet.Hosting
|
|||
.UseStartup("Microsoft.AspNet.Hosting.Tests")
|
||||
.Build();
|
||||
|
||||
application.Start();
|
||||
host.Start();
|
||||
|
||||
var singleton = (FakeService)application.Services.GetService<IFakeSingletonService>();
|
||||
var transient = (FakeService)application.Services.GetService<IFakeService>();
|
||||
var singleton = (FakeService)host.Services.GetService<IFakeSingletonService>();
|
||||
var transient = (FakeService)host.Services.GetService<IFakeService>();
|
||||
|
||||
Assert.False(singleton.Disposed);
|
||||
Assert.False(transient.Disposed);
|
||||
|
||||
application.Dispose();
|
||||
host.Dispose();
|
||||
|
||||
Assert.True(singleton.Disposed);
|
||||
Assert.True(transient.Disposed);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplicationNotifiesApplicationStarted()
|
||||
public void WebHostNotifiesApplicationStarted()
|
||||
{
|
||||
var application = CreateBuilder()
|
||||
var host = CreateBuilder()
|
||||
.UseServer((IServerFactory)this)
|
||||
.Build();
|
||||
var applicationLifetime = application.Services.GetService<IApplicationLifetime>();
|
||||
var applicationLifetime = host.Services.GetService<IApplicationLifetime>();
|
||||
|
||||
Assert.False(applicationLifetime.ApplicationStarted.IsCancellationRequested);
|
||||
using (application)
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
host.Start();
|
||||
Assert.True(applicationLifetime.ApplicationStarted.IsCancellationRequested);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplicationInjectsHostingEnvironment()
|
||||
public void WebHostInjectsHostingEnvironment()
|
||||
{
|
||||
var application = CreateBuilder()
|
||||
var host = CreateBuilder()
|
||||
.UseServer((IServerFactory)this)
|
||||
.UseStartup("Microsoft.AspNet.Hosting.Tests")
|
||||
.UseEnvironment("WithHostingEnvironment")
|
||||
.Build();
|
||||
|
||||
using (application)
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
var env = application.Services.GetService<IHostingEnvironment>();
|
||||
host.Start();
|
||||
var env = host.Services.GetService<IHostingEnvironment>();
|
||||
Assert.Equal("Changed", env.EnvironmentName);
|
||||
}
|
||||
}
|
||||
|
|
@ -265,15 +265,15 @@ namespace Microsoft.AspNet.Hosting
|
|||
[Fact]
|
||||
public void CanCreateApplicationServicesWithAddedServices()
|
||||
{
|
||||
var application = CreateBuilder().UseServer((IServerFactory)this).ConfigureServices(services => services.AddOptions()).Build();
|
||||
Assert.NotNull(application.Services.GetRequiredService<IOptions<object>>());
|
||||
var host = CreateBuilder().UseServer((IServerFactory)this).ConfigureServices(services => services.AddOptions()).Build();
|
||||
Assert.NotNull(host.Services.GetRequiredService<IOptions<object>>());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EnvDefaultsToProductionIfNoConfig()
|
||||
{
|
||||
var application = CreateBuilder().UseServer((IServerFactory)this).Build();
|
||||
var env = application.Services.GetService<IHostingEnvironment>();
|
||||
var host = CreateBuilder().UseServer((IServerFactory)this).Build();
|
||||
var env = host.Services.GetService<IHostingEnvironment>();
|
||||
Assert.Equal(EnvironmentName.Production, env.EnvironmentName);
|
||||
}
|
||||
|
||||
|
|
@ -282,7 +282,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
{
|
||||
var vals = new Dictionary<string, string>
|
||||
{
|
||||
// Old key is actualy ASPNET_ENV but WebApplicationConfiguration expects environment
|
||||
// Old key is actualy ASPNET_ENV but WebHostConfiguration expects environment
|
||||
// variable names stripped from ASPNET_ prefix so using just ENV here
|
||||
{ "ENV", "Staging" }
|
||||
};
|
||||
|
|
@ -291,8 +291,8 @@ namespace Microsoft.AspNet.Hosting
|
|||
.AddInMemoryCollection(vals);
|
||||
var config = builder.Build();
|
||||
|
||||
var application = CreateBuilder(config).UseServer((IServerFactory)this).Build();
|
||||
var env = application.Services.GetService<IHostingEnvironment>();
|
||||
var host = CreateBuilder(config).UseServer((IServerFactory)this).Build();
|
||||
var env = host.Services.GetService<IHostingEnvironment>();
|
||||
Assert.Equal("Staging", env.EnvironmentName);
|
||||
}
|
||||
|
||||
|
|
@ -308,8 +308,8 @@ namespace Microsoft.AspNet.Hosting
|
|||
.AddInMemoryCollection(vals);
|
||||
var config = builder.Build();
|
||||
|
||||
var application = CreateBuilder(config).UseServer((IServerFactory)this).Build();
|
||||
var env = application.Services.GetService<IHostingEnvironment>();
|
||||
var host = CreateBuilder(config).UseServer((IServerFactory)this).Build();
|
||||
var env = host.Services.GetService<IHostingEnvironment>();
|
||||
Assert.Equal("Staging", env.EnvironmentName);
|
||||
}
|
||||
|
||||
|
|
@ -325,8 +325,8 @@ namespace Microsoft.AspNet.Hosting
|
|||
.AddInMemoryCollection(vals);
|
||||
var config = builder.Build();
|
||||
|
||||
var application = CreateBuilder(config).UseServer((IServerFactory)this).Build();
|
||||
var env = application.Services.GetService<IHostingEnvironment>();
|
||||
var host = CreateBuilder(config).UseServer((IServerFactory)this).Build();
|
||||
var env = host.Services.GetService<IHostingEnvironment>();
|
||||
Assert.Equal(Path.GetFullPath("testroot"), env.WebRootPath);
|
||||
Assert.True(env.WebRootFileProvider.GetFileInfo("TextFile.txt").Exists);
|
||||
}
|
||||
|
|
@ -334,11 +334,11 @@ namespace Microsoft.AspNet.Hosting
|
|||
[Fact]
|
||||
public void IsEnvironment_Extension_Is_Case_Insensitive()
|
||||
{
|
||||
var application = CreateBuilder().UseServer((IServerFactory)this).Build();
|
||||
using (application)
|
||||
var host = CreateBuilder().UseServer((IServerFactory)this).Build();
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
var env = application.Services.GetRequiredService<IHostingEnvironment>();
|
||||
host.Start();
|
||||
var env = host.Services.GetRequiredService<IHostingEnvironment>();
|
||||
Assert.True(env.IsEnvironment(EnvironmentName.Production));
|
||||
Assert.True(env.IsEnvironment("producTion"));
|
||||
}
|
||||
|
|
@ -366,7 +366,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplication_CreatesDefaultRequestIdentifierFeature_IfNotPresent()
|
||||
public void WebHost_CreatesDefaultRequestIdentifierFeature_IfNotPresent()
|
||||
{
|
||||
// Arrange
|
||||
HttpContext httpContext = null;
|
||||
|
|
@ -375,10 +375,10 @@ namespace Microsoft.AspNet.Hosting
|
|||
httpContext = innerHttpContext;
|
||||
return Task.FromResult(0);
|
||||
});
|
||||
var application = CreateApplication(requestDelegate);
|
||||
var host = CreateHost(requestDelegate);
|
||||
|
||||
// Act
|
||||
application.Start();
|
||||
host.Start();
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(httpContext);
|
||||
|
|
@ -388,7 +388,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplication_DoesNot_CreateDefaultRequestIdentifierFeature_IfPresent()
|
||||
public void WebHost_DoesNot_CreateDefaultRequestIdentifierFeature_IfPresent()
|
||||
{
|
||||
// Arrange
|
||||
HttpContext httpContext = null;
|
||||
|
|
@ -399,10 +399,10 @@ namespace Microsoft.AspNet.Hosting
|
|||
});
|
||||
var requestIdentifierFeature = new StubHttpRequestIdentifierFeature();
|
||||
_featuresSupportedByThisHost[typeof(IHttpRequestIdentifierFeature)] = requestIdentifierFeature;
|
||||
var application = CreateApplication(requestDelegate);
|
||||
var host = CreateHost(requestDelegate);
|
||||
|
||||
// Act
|
||||
application.Start();
|
||||
host.Start();
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(httpContext);
|
||||
|
|
@ -410,17 +410,17 @@ namespace Microsoft.AspNet.Hosting
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplication_InvokesConfigureMethodsOnlyOnce()
|
||||
public void WebHost_InvokesConfigureMethodsOnlyOnce()
|
||||
{
|
||||
var application = CreateBuilder()
|
||||
var host = CreateBuilder()
|
||||
.UseServer((IServerFactory)this)
|
||||
.UseStartup<CountStartup>()
|
||||
.Build();
|
||||
using (application)
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
var services = application.Services;
|
||||
var services2 = application.Services;
|
||||
host.Start();
|
||||
var services = host.Services;
|
||||
var services2 = host.Services;
|
||||
Assert.Equal(1, CountStartup.ConfigureCount);
|
||||
Assert.Equal(1, CountStartup.ConfigureServicesCount);
|
||||
}
|
||||
|
|
@ -443,7 +443,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void WebApplication_ThrowsForBadConfigureServiceSignature()
|
||||
public void WebHost_ThrowsForBadConfigureServiceSignature()
|
||||
{
|
||||
var builder = CreateBuilder()
|
||||
.UseServer((IServerFactory)this)
|
||||
|
|
@ -459,7 +459,7 @@ namespace Microsoft.AspNet.Hosting
|
|||
public void Configure(IApplicationBuilder app) { }
|
||||
}
|
||||
|
||||
private IWebApplication CreateApplication(RequestDelegate requestDelegate)
|
||||
private IWebHost CreateHost(RequestDelegate requestDelegate)
|
||||
{
|
||||
var builder = CreateBuilder()
|
||||
.UseServer((IServerFactory)this)
|
||||
|
|
@ -474,12 +474,12 @@ namespace Microsoft.AspNet.Hosting
|
|||
|
||||
private void RunMapPath(string virtualPath, string expectedSuffix)
|
||||
{
|
||||
var application = CreateBuilder().UseServer((IServerFactory)this).Build();
|
||||
var host = CreateBuilder().UseServer((IServerFactory)this).Build();
|
||||
|
||||
using (application)
|
||||
using (host)
|
||||
{
|
||||
application.Start();
|
||||
var env = application.Services.GetRequiredService<IHostingEnvironment>();
|
||||
host.Start();
|
||||
var env = host.Services.GetRequiredService<IHostingEnvironment>();
|
||||
// MapPath requires webroot to be set, we don't care
|
||||
// about file provider so just set it here
|
||||
env.WebRootPath = ".";
|
||||
|
|
@ -489,9 +489,9 @@ namespace Microsoft.AspNet.Hosting
|
|||
}
|
||||
}
|
||||
|
||||
private IWebApplicationBuilder CreateBuilder(IConfiguration config = null)
|
||||
private IWebHostBuilder CreateBuilder(IConfiguration config = null)
|
||||
{
|
||||
return new WebApplicationBuilder().UseConfiguration(config ?? new ConfigurationBuilder().Build()).UseStartup("Microsoft.AspNet.Hosting.Tests");
|
||||
return new WebHostBuilder().UseConfiguration(config ?? new ConfigurationBuilder().Build()).UseStartup("Microsoft.AspNet.Hosting.Tests");
|
||||
}
|
||||
|
||||
public void Start<TContext>(IHttpApplication<TContext> application)
|
||||
|
|
@ -283,10 +283,10 @@ namespace Microsoft.AspNet.TestHost
|
|||
{
|
||||
// This logger will attempt to access information from HttpRequest once the HttpContext is created
|
||||
var logger = new VerifierLogger();
|
||||
var builder = new WebApplicationBuilder()
|
||||
var builder = new WebHostBuilder()
|
||||
.ConfigureServices(services =>
|
||||
{
|
||||
services.AddSingleton<ILogger<WebApplication>>(logger);
|
||||
services.AddSingleton<ILogger<WebHost>>(logger);
|
||||
})
|
||||
.Configure(app =>
|
||||
{
|
||||
|
|
@ -301,7 +301,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
var result = await server.CreateClient().GetStringAsync("/");
|
||||
}
|
||||
|
||||
private class VerifierLogger : ILogger<WebApplication>
|
||||
private class VerifierLogger : ILogger<WebHost>
|
||||
{
|
||||
public IDisposable BeginScopeImpl(object state) => new NoopDispoasble();
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono)]
|
||||
public void AddRequestHeader()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app => { });
|
||||
var builder = new WebHostBuilder().Configure(app => { });
|
||||
var server = new TestServer(builder);
|
||||
server.CreateRequest("/")
|
||||
.AddHeader("Host", "MyHost:90")
|
||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[Fact]
|
||||
public void AddContentHeaders()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app => { });
|
||||
var builder = new WebHostBuilder().Configure(app => { });
|
||||
var server = new TestServer(builder);
|
||||
server.CreateRequest("/")
|
||||
.AddHeader("Content-Type", "Test/Value")
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
var expected = "GET Response";
|
||||
RequestDelegate appDelegate = ctx =>
|
||||
ctx.Response.WriteAsync(expected);
|
||||
var builder = new WebApplicationBuilder().Configure(app => app.Run(appDelegate));
|
||||
var builder = new WebHostBuilder().Configure(app => app.Run(appDelegate));
|
||||
var server = new TestServer(builder);
|
||||
var client = server.CreateClient();
|
||||
|
||||
|
|
@ -53,7 +53,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
Assert.Equal("/", ctx.Request.Path.Value);
|
||||
return ctx.Response.WriteAsync(expected);
|
||||
};
|
||||
var builder = new WebApplicationBuilder().Configure(app => app.Run(appDelegate));
|
||||
var builder = new WebHostBuilder().Configure(app => app.Run(appDelegate));
|
||||
var server = new TestServer(builder);
|
||||
var client = server.CreateClient();
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
Assert.Equal("/", ctx.Request.Path.Value);
|
||||
return ctx.Response.WriteAsync(expected);
|
||||
};
|
||||
var builder = new WebApplicationBuilder().Configure(app => app.Run(appDelegate));
|
||||
var builder = new WebHostBuilder().Configure(app => app.Run(appDelegate));
|
||||
var server = new TestServer(builder);
|
||||
var client = server.CreateClient();
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
// Arrange
|
||||
RequestDelegate appDelegate = ctx =>
|
||||
ctx.Response.WriteAsync(new StreamReader(ctx.Request.Body).ReadToEnd() + " PUT Response");
|
||||
var builder = new WebApplicationBuilder().Configure(app => app.Run(appDelegate));
|
||||
var builder = new WebHostBuilder().Configure(app => app.Run(appDelegate));
|
||||
var server = new TestServer(builder);
|
||||
var client = server.CreateClient();
|
||||
|
||||
|
|
@ -113,7 +113,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
// Arrange
|
||||
RequestDelegate appDelegate = async ctx =>
|
||||
await ctx.Response.WriteAsync(new StreamReader(ctx.Request.Body).ReadToEnd() + " POST Response");
|
||||
var builder = new WebApplicationBuilder().Configure(app => app.Run(appDelegate));
|
||||
var builder = new WebHostBuilder().Configure(app => app.Run(appDelegate));
|
||||
var server = new TestServer(builder);
|
||||
var client = server.CreateClient();
|
||||
|
||||
|
|
@ -154,10 +154,10 @@ namespace Microsoft.AspNet.TestHost
|
|||
}
|
||||
}
|
||||
};
|
||||
var builder = new WebApplicationBuilder()
|
||||
var builder = new WebHostBuilder()
|
||||
.ConfigureServices(services =>
|
||||
{
|
||||
services.AddSingleton<ILogger<WebApplication>>(logger);
|
||||
services.AddSingleton<ILogger<WebHost>>(logger);
|
||||
})
|
||||
.Configure(app =>
|
||||
{
|
||||
|
|
@ -197,7 +197,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
}
|
||||
|
||||
|
||||
private class VerifierLogger : ILogger<WebApplication>
|
||||
private class VerifierLogger : ILogger<WebHost>
|
||||
{
|
||||
public IDisposable BeginScopeImpl(object state) => new NoopDispoasble();
|
||||
|
||||
|
|
@ -227,7 +227,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
websocket.Dispose();
|
||||
}
|
||||
};
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(appDelegate);
|
||||
});
|
||||
|
|
@ -261,7 +261,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
}
|
||||
}
|
||||
};
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(appDelegate);
|
||||
});
|
||||
|
|
@ -310,7 +310,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
};
|
||||
|
||||
// Act
|
||||
var builder = new WebApplicationBuilder().Configure(app => app.Run(appDelegate));
|
||||
var builder = new WebHostBuilder().Configure(app => app.Run(appDelegate));
|
||||
var server = new TestServer(builder);
|
||||
var client = server.CreateClient();
|
||||
var request = new HttpRequestMessage(HttpMethod.Get, "http://localhost:12345");
|
||||
|
|
@ -342,7 +342,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
};
|
||||
|
||||
// Act
|
||||
var builder = new WebApplicationBuilder().Configure(app => app.Run(appDelegate));
|
||||
var builder = new WebHostBuilder().Configure(app => app.Run(appDelegate));
|
||||
var server = new TestServer(builder);
|
||||
var client = server.CreateClient();
|
||||
var cts = new CancellationTokenSource();
|
||||
|
|
|
|||
|
|
@ -27,14 +27,14 @@ namespace Microsoft.AspNet.TestHost
|
|||
{
|
||||
// Arrange
|
||||
// Act & Assert (Does not throw)
|
||||
new TestServer(new WebApplicationBuilder().Configure(app => { }));
|
||||
new TestServer(new WebHostBuilder().Configure(app => { }));
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
public void DoesNotCaptureStartupErrorsByDefault()
|
||||
{
|
||||
var builder = new WebApplicationBuilder()
|
||||
var builder = new WebHostBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
throw new InvalidOperationException();
|
||||
|
|
@ -47,7 +47,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[Fact]
|
||||
public void CaptureStartupErrorsSettingPreserved()
|
||||
{
|
||||
var builder = new WebApplicationBuilder()
|
||||
var builder = new WebHostBuilder()
|
||||
.UseCaptureStartupErrors(true)
|
||||
.Configure(app =>
|
||||
{
|
||||
|
|
@ -62,7 +62,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
public void ApplicationServicesAvailableFromTestServer()
|
||||
{
|
||||
var testService = new TestService();
|
||||
var builder = new WebApplicationBuilder()
|
||||
var builder = new WebHostBuilder()
|
||||
.Configure(app => { })
|
||||
.ConfigureServices(services =>
|
||||
{
|
||||
|
|
@ -70,14 +70,14 @@ namespace Microsoft.AspNet.TestHost
|
|||
});
|
||||
var server = new TestServer(builder);
|
||||
|
||||
Assert.Equal(testService, server.Application.Services.GetRequiredService<TestService>());
|
||||
Assert.Equal(testService, server.Host.Services.GetRequiredService<TestService>());
|
||||
}
|
||||
|
||||
[ConditionalFact]
|
||||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task RequestServicesAutoCreated()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -114,7 +114,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task CustomServiceProviderSetsApplicationServices()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().UseStartup<CustomContainerStartup>();
|
||||
var builder = new WebHostBuilder().UseStartup<CustomContainerStartup>();
|
||||
var server = new TestServer(builder);
|
||||
string result = await server.CreateClient().GetStringAsync("/path");
|
||||
Assert.Equal("ApplicationServicesEqual:True", result);
|
||||
|
|
@ -157,7 +157,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task ExistingRequestServicesWillNotBeReplaced()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -179,7 +179,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task CanSetCustomServiceProvider()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -229,7 +229,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
public async Task ExistingServiceProviderFeatureWillNotBeReplaced()
|
||||
{
|
||||
var appServices = new ServiceCollection().BuildServiceProvider();
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -271,7 +271,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task WillReplaceServiceProviderFeatureWithNullRequestServices()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -293,7 +293,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task CanAccessLogger()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -311,7 +311,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task CanAccessHttpContext()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -343,7 +343,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task CanAddNewHostServices()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -366,7 +366,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task CreateInvokesApp()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -383,7 +383,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task DisposeStreamIgnored()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(async context =>
|
||||
{
|
||||
|
|
@ -402,7 +402,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task DisposedServerThrows()
|
||||
{
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
app.Run(async context =>
|
||||
{
|
||||
|
|
@ -422,7 +422,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task CancelAborts()
|
||||
{
|
||||
var builder = new WebApplicationBuilder()
|
||||
var builder = new WebHostBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
app.Run(context =>
|
||||
|
|
@ -441,7 +441,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task CanCreateViaStartupType()
|
||||
{
|
||||
var builder = new WebApplicationBuilder()
|
||||
var builder = new WebHostBuilder()
|
||||
.UseStartup<TestStartup>();
|
||||
var server = new TestServer(builder);
|
||||
HttpResponseMessage result = await server.CreateClient().GetAsync("/");
|
||||
|
|
@ -453,7 +453,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
[FrameworkSkipCondition(RuntimeFrameworks.Mono, SkipReason = "Hangs randomly (issue #507)")]
|
||||
public async Task CanCreateViaStartupTypeAndSpecifyEnv()
|
||||
{
|
||||
var builder = new WebApplicationBuilder()
|
||||
var builder = new WebHostBuilder()
|
||||
.UseStartup<TestStartup>()
|
||||
.UseEnvironment("Foo");
|
||||
var server = new TestServer(builder);
|
||||
|
|
@ -469,7 +469,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
{
|
||||
DiagnosticListener diagnosticListener = null;
|
||||
|
||||
var builder = new WebApplicationBuilder()
|
||||
var builder = new WebHostBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
diagnosticListener = app.ApplicationServices.GetRequiredService<DiagnosticListener>();
|
||||
|
|
@ -498,7 +498,7 @@ namespace Microsoft.AspNet.TestHost
|
|||
public async Task ExceptionDiagnosticAvailable()
|
||||
{
|
||||
DiagnosticListener diagnosticListener = null;
|
||||
var builder = new WebApplicationBuilder().Configure(app =>
|
||||
var builder = new WebHostBuilder().Configure(app =>
|
||||
{
|
||||
diagnosticListener = app.ApplicationServices.GetRequiredService<DiagnosticListener>();
|
||||
app.Run(context =>
|
||||
|
|
|
|||
Loading…
Reference in New Issue