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 應用程式直到它停止。
廣告