C# ASP.NET Core 项目中 Program.cs 文件的作用是什么?


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>()** 方法指定 web 主机要使用的 Startup 类。我们也可以指定我们自定义的类来代替 startup。

**Build()** 方法返回 IWebHost 实例,而 Run() 启动 web 应用程序直到它停止。

更新于:2020年9月25日

1K+ 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告