主机定义

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

设置主机

主机通常由 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 主机的更多相关文章

  1. [ASP.NET Core开发实战]基础篇03 中间件

    什么是中间件 中间件是一种装配到应用管道,以处理请求和响应的组件.每个中间件: 选择是否将请求传递到管道中的下一个中间件. 可在管道中的下一个中间件前后执行. ASP.NET Core请求管道包含一系 ...

  2. [ASP.NET Core开发实战]基础篇02 依赖注入

    ASP.NET Core的底层机制之一是依赖注入(DI)设计模式,因此要好好掌握依赖注入的用法. 什么是依赖注入 我们看一下下面的例子: public class MyDependency { pub ...

  3. [ASP.NET Core开发实战]基础篇01 Startup

    Startup,顾名思义,就是启动类,用于配置ASP.NET Core应用的服务和请求管道. Startup有两个主要作用: 通过ConfigureServices方法配置应用的服务.服务是一个提供应 ...

  4. [ASP.NET Core开发实战]基础篇06 配置

    配置,是应用程序很重要的组成部分,常常用于提供信息,像第三方应用登录钥匙.上传格式与大小限制等等. ASP.NET Core提供一系列配置提供程序读取配置文件或配置项信息. ASP.NET Core项 ...

  5. [ASP.NET Core开发实战]基础篇05 服务器

    什么是服务器 服务器指ASP.NET Core应用运行在操作系统上的载体,也叫Web服务器. Web服务器实现侦听HTTP请求,并以构建HttpContext的对象发送给ASP.NET Core应用. ...

  6. 2月送书福利:ASP.NET Core开发实战

    大家都知道我有一个公众号“恰童鞋骚年”,在公众号2020年第一天发布的推文<2020年,请让我重新介绍我自己>中,我曾说到我会在2020年中每个月为所有关注“恰童鞋骚年”公众号的童鞋们送一 ...

  7. [ASP.NET Core开发实战]开篇词

    前言 本系列课程文章主要是学习官方文档,再输出自己学习心得,希望对你有所帮助. 课程大纲 本系列课程主要分为三个部分:基础篇.实战篇和部署篇. 希望通过本系列课程,能让大家初步掌握使用ASP.NET ...

  8. ASP.NET Core 2.2 基础知识(八) 主机 (未完待续)

    主机负责应用程序启动和生存期管理.共有两个主机 API : 1.Web 主机 : 适用于托管 Web 应用,基于 IWebHostBuilder ; 2.通用主机 : 适用于托管非 Web 应用. 基 ...

  9. 《ASP.NET Core项目开发实战入门》带你走进ASP.NET Core开发

    <ASP.NET Core项目开发实战入门>从基础到实际项目开发部署带你走进ASP.NET Core开发. ASP.NET Core项目开发实战入门是基于ASP.NET Core 3.1 ...

随机推荐

  1. Spring学习总结(1)-注入方式

    Spring实现IOC的思路是提供一些配置信息用来描述类之间的依赖关系,然后由容器去解析这些配置信息,继而维护好对象之间的依赖关系,前提是对象之间的依赖关系必须在类中定义好,比如A.class中有一个 ...

  2. 没用过消息队列?一文带你体验RabbitMQ收发消息

    人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 先给大家说声抱歉,最近一周都没有发文,有一些比较要紧重要的事需要处理. 今天正好得空,本来说准备写SpringIOC相关的东西,但是发现想 ...

  3. 22、Command 命令模式

    1.command 命令模式 命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指 ...

  4. CentOS7 安装 SonarQube

    安装 SonarQube 环境 系统 CentOS 7 数据库 postgresql 10 系统配置 查看系统配置 sysctl vm.max_map_count sysctl fs.file-max ...

  5. 2020-04-28:工作中如何解决MQ消息堆积和消息重复的问题?

    福哥答案2020-04-28:此答案来自群员,感谢群员支持. 消息堆积 只能考虑 增多消费者 以及后端其他服务 组件的吞吐能力 别的有办法吗 如果更彻底一点 分撒单个队列里的消息 队列 更分门别类 或 ...

  6. golang实现 快速排序算法

    快速排序算法原理: b站https://b23.tv/uJqRYN package main import "fmt" //[]int{1,2,3,4,5,6,7,8} func ...

  7. 靶机练习 - ATT&CK红队实战靶场 - 1. 环境搭建和漏洞利用

    最近某个公众号介绍了网上的一套环境,这个环境是多个Windows靶机组成的,涉及到内网渗透,正好Windows和内网渗透一直没怎么接触过,所以拿来学习下. 下载地址:http://vulnstack. ...

  8. CODING DevOps 代码质量实战系列最后一课,周四发车

    随着 ToB(企业服务)的兴起和 ToC(消费互联网)产品进入成熟期,线上故障带来的损失越来越大,代码质量越来越重要,而「质量内建」正是 DevOps 核心理念之一. <DevOps 代码质量实 ...

  9. 初始化vtable

    在InstanceKlass::link_class_impl()方法中完成方法连接后会继续初始化vtable与itable,之前已经介绍过vtable与itable,并且在类解析过程中已经完成了大小 ...

  10. SpringBoot---关于 WebMvcConfigurerAdapter 过时问题及解决方法

    SpringBoot---关于 WebMvcConfigurerAdapter 过时问题及解决方法 环境: IDEA :2020.1 Maven:3.5.6 SpringBoot: 2.3.2 在Sp ...