.Net Core 启动流程和主机(配置) 一
- Kestrel是一个跨平台的适用于ASP.NET Core的Web服务器
- 你可以把他当作是IIS,但它不是IIS,核心功能是一样,都是提供HTTP服务,他的功能很弱,很少
- HTTPS/ HTTS/2,他的性能很高,高性能的HTTP服务器,比IIS的性能要高不少,运行在LINUX上
- 主流的用法,与其它反向代理服务器(iginx、IIS、Apache) .结合使用
- 直接使用Kresrel



public class Program
{
public static void Main(string[] args)
{
// 在我们配置完之前,是不回执行任何配置委托的,我们所有的配置都被延后了
CreateHostBuilder(args).Build().Run();
}
//Build() 将各配置 用委托的方式 用list 结束得到主机的实例 在源码HostBuilder.cs
//Run() 以阻塞的方式运行主机,应用是一个控制台 在源码 Microsoft.Extensions.Hosting.Internal Host.cs StartAsync() 依次加入执行配置委托
// 默认主机构建器 (配置都写好以后)
// 主机负责应用的启动和生存期管理、配置服务器和请求处理管道
// 默认设置日志记录、依赖关系的注入和配置
// 主机是一个封装了应用资源的对象 .NET Core (.NET 核心API)里的一个类(Host)!!
// .NET Extensions 的源码(.NET CORE 扩展包、日志、)(.NET 功能性的组件)
public static IHostBuilder CreateHostBuilder(string[] args) =>
//.NET CORE 有两种主机,泛型(通用)主机
// Web主机(他是通用主机的扩展,他提供额外WEB功能,支持HTTP,集成了Kestrel,内置了IIS集成)
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
//不建议用硬编码(如下代码),不灵活,用配置文件或者命令行,官网文档去查他配置项的键名
//从前缀为“ASPNETCORE"的环境变量加载WEB主机配置
//默认是将Kestrel设置为web服务器并对其进行默认配置/支持IIS集成
//自定义配置,关于WEB主机
//组件配置,不属于主机,但是由主机调用(扩展类提供的配置方法)
//(都可以在配置文件完成)
//ConfigureKestrel 配置请求
webBuilder.ConfigureKestrel(options => options.Limits.MaxRequestBodySize = 1024 * 1024 * 100);
//配置日志级别
webBuilder.ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Debug));
//指定ASP.NET CORE 应用启动类
webBuilder.UseStartup<Startup>();
//webBuilder.UseUrls("http://*:6000");
});
}

public class Program
{
public static void Main(string[] args)
{
// 在我们配置完之前,是不回执行任何配置委托的,我们所有的配置都被延后了
CreateHostBuilder(args).Build().Run();
}
//Build() 将各配置 用委托的方式 用list 结束得到主机的实例 在源码HostBuilder.cs
//Run() 以阻塞的方式运行主机,应用是一个控制台 在源码 Microsoft.Extensions.Hosting.Internal Host.cs StartAsync() 依次加入执行配置委托
// 默认主机构建器 (配置都写好以后)
// 主机负责应用的启动和生存期管理、配置服务器和请求处理管道
// 默认设置日志记录、依赖关系的注入和配置
// 主机是一个封装了应用资源的对象 .NET Core (.NET 核心API)里的一个类(Host)!!
// .NET Extensions 的源码(.NET CORE 扩展包、日志、)(.NET 功能性的组件)
public static IHostBuilder CreateHostBuilder(string[] args) =>
//.NET CORE 有两种主机,泛型(通用)主机
// Web主机(他是通用主机的扩展,他提供额外WEB功能,支持HTTP,集成了Kestrel,内置了IIS集成)
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
//不建议用硬编码(如下代码),不灵活,用配置文件或者命令行,官网文档去查他配置项的键名
//从前缀为“ASPNETCORE"的环境变量加载WEB主机配置
//默认是将Kestrel设置为web服务器并对其进行默认配置/支持IIS集成
//自定义配置,关于WEB主机
//组件配置,不属于主机,但是由主机调用(扩展类提供的配置方法)
//(都可以在配置文件完成)
//ConfigureKestrel 配置请求
webBuilder.ConfigureKestrel(options => options.Limits.MaxRequestBodySize = 1024 * 1024 * 100);
//配置日志级别
webBuilder.ConfigureLogging(builder => builder.SetMinimumLevel(LogLevel.Debug));
//指定ASP.NET CORE 应用启动类
webBuilder.UseStartup<Startup>();
//webBuilder.UseUrls("http://*:6000");
});
}
分类:
.NET
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?