[ASP.NET Core开发实战]基础篇04 主机

主机定义

主机是封闭应用资源的对象。

设置主机

主机通常由 Program 类中的代码配置、生成和运行。

HTTP项目(ASP.NET Core项目)创建泛型主机:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            });
}

非 HTTP 项目创建泛型主机:

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureServices((hostContext, services) =>
            {
               services.AddHostedService<Worker>();
            });
}

HTTP项目与非HTTP项目的区别:

  • Main 方法相同
  • HTTP项目的CreateHostBuilder 调用 ConfigureWebHostDefaults
  • 非HTTP项目的CreateHostBuilder 调用 CreateDefaultBuilder

适用于所有应用类型的设置

属性名 类型 默认 环境变量 备注
ApplicationName applicationName string 包含应用入口点的程序集的名称。 <PREFIX_>APPLICATIONNAME 要设置此值,请使用环境变量。
ContentRoot contentRoot string 应用程序集所在的文件夹。 <PREFIX_>CONTENTROOT 若要设置此值,请使用环境变量或对 IHostBuilder 调用 UseContentRoot
EnvironmentName environment string Production <PREFIX_>ENVIRONMENT 若要设置此值,请使用环境变量或对 IHostBuilder 调用 UseEnvironment
ShutdownTimeout shutdownTimeoutSeconds int 5 秒 <PREFIX_>SHUTDOWNTIMEOUTSECONDS 若要设置此值,请使用环境变量或配置 HostOptions。

适用于 Web 应用的设置

一些主机设置仅适用于 HTTP 项目。 默认情况下,用来配置这些设置的环境变量可以具有 DOTNET_ 或 ASPNETCORE_ 前缀。

属性名 类型 默认 环境变量 备注
CaptureStartupErrors captureStartupErrors bool(true 或 1) 默认为 false,除非应用使用 Kestrel 在 IIS 后方运行,其中默认值是 true。 <PREFIX_>CAPTURESTARTUPERRORS 若要设置此值,使用配置或调用 CaptureStartupErrors
DetailedErrors detailedErrors bool(true 或 1) false <PREFIX_>_DETAILEDERRORS 要设置此值,使用配置或调用 UseSetting
HostingStartupAssemblies hostingStartupAssemblies string 空字符串 <PREFIX_>_HOSTINGSTARTUPASSEMBLIES 要设置此值,使用配置或调用 UseSetting
HostingStartupExcludeAssemblies hostingStartupExcludeAssemblies string 空字符串 <PREFIX_>_HOSTINGSTARTUPEXCLUDEASSEMBLIES 要设置此值,使用配置或调用 UseSetting
HTTPS_Port https_port string 未设置默认值。 <PREFIX_>HTTPS_PORT 要设置此值,使用配置或调用 UseSetting
PreferHostingUrls preferHostingUrls bool(true 或 1) true <PREFIX_>_PREFERHOSTINGURLS 若要设置此值,请使用环境变量或调用 PreferHostingUrls
PreventHostingStartup preventHostingStartup bool(true 或 1) false <PREFIX_>_PREVENTHOSTINGSTARTUP 若要设置此值,请使用环境变量或调用 UseSetting
StartupAssembly startupAssembly string 应用的程序集 <PREFIX_>STARTUPASSEMBLY 若要设置此值,请使用环境变量或调用 UseStartup
URL urls string http://localhost:5000https://localhost:5001 <PREFIX_>URLS 若要设置此值,请使用环境变量或调用 UseUrls
WebRoot webroot string 默认值为 wwwroot。 {content root}/wwwroot 的路径必须存在。 <PREFIX_>WEBROOT 若要设置此值,请使用环境变量或对 IWebHostBuilder 调用 UseWebRoot

[ASP.NET Core开发实战]基础篇04 主机

上一篇:Android 内存监测工具 DDMS


下一篇:appium+python搭建app自动化测试框架(一)