ASP.NET Core 的網頁應用程式其實是一個在 Main
方法中建立網頁伺服器的主控台應用程式。(有點像 Node.js 的 listen port?)
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Main
方法中會呼叫 WebHost.CreateDefaultBuilder
,採用生成器模式 (builder pattern) 來建立一個網頁伺服器。這個 builder 包含定義網頁伺服器 (UseKestrel
) 和定義啟動類別 (UseStartup
) 等方法。在範本建立的專案中,WebHost.CreateDefaultBuilder
中已經有呼叫 UseKestrel
,如果採用預設值的話可以不用特別設定。啟動時會嘗試在 IIS 上執行。
WebHost.CreateDefaultBuilder
回傳 IWebHostBuilder
類別,其中有許多方法可以對伺服器有更多設定,完整列表可以參考官方文件。Build
方法會建立 IWebHost
物件,Run
方法則是掛載應用程式後開始監聽請求。
接下來幾天會再介紹這些部分: