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 应用程序直至其停止。


相关文章