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 应用程序直到它停止。
广告