C# ASP.NET Core 项目中 Program.cs 文件的用途是什么?
csharpserver side programmingprogramming更新于 2025/9/30 12:37:17
ASP.NET Core Web 应用程序实际上是一个控制台项目,它从 Program 类中的入口点 public static void Main() 开始执行,我们可以在该入口点为 Web 应用程序创建宿主。
public class Program{
public static void Main(string[] args){
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<startup>()
.Build();
}
WebHost 是一个静态类,可用于创建具有预配置默认值的 IWebHost 和 IWebHostBuilder 实例。
CreateDefaultBuilder() 方法使用预配置默认值创建一个新的 WebHostBuilder 实例。在内部,
它配置 Kestrel、IISIntegration 和其他配置。以下是 CreateDefaultBuilder() 方法。
- 设置"内容根目录"为当前目录
- 允许将命令行参数推送到配置对象
- 将 appsettings.json 和 appsettings.{Environment}.json 添加到配置对象中
- 将环境变量添加到配置对象
- 如果处于开发阶段,则允许加载机密信息。
- 添加控制台/调试记录器
- 指示应用使用 Kestrel 并从已加载的配置中加载 Kestrel 配置
- 添加路由
- 添加 IIS 集成
当我们想要将应用程序托管到 IIS 中时,我们需要添加 UseIISIntegration() 方法,指定 IIS 作为外部 Web 服务器。
UseStartup<startup>() 方法指定 Startup 类为由 Web 主机使用。我们也可以指定自定义类来代替启动。
Build() 方法返回 IWebHost 的一个实例,Run() 启动 Web 应用程序直至其停止。

