ASP.NET Core 2.2 基礎知識(八) 主機 (未完待續)
阿新 • • 發佈:2019-01-06
主機負責應用程式啟動和生存期管理.共有兩個主機 API :
1.Web 主機 : 適用於託管 Web 應用,基於 IWebHostBuilder ;
2.通用主機 : 適用於託管非 Web 應用. 基於 HostBuilder .
官方:
通用主機的目標是將 HTTP 管道從 Web 主機 API 中分離出來,從而啟用更多的主機方案。 基於通用主機的訊息、後臺任務和其他非 HTTP 工作負載可從橫切功能(如配置、依賴關係注入 [DI] 和日誌記錄)中受益
通用主機是 ASP.NET Core 2.1 中的新增功能,不適用於 Web 承載方案。 對於 Web 承載方案,請使用 Web 主機。通用主機正處於開發階段,用於在未來版本中替換 Web 主機,並在 HTTP 和非 HTTP 方案中充當主要的主機 API。
Web 主機
public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>(); }
CreateDefaultBuilder 方法執行了很多重要任務:
1.將 Kesstrel 配置為 Web 伺服器;
2.載入主機配置;
3.通過以下物件載入應用配置:
- appsetting.json.
- appsettings.{Environment}.json.
- 開發環境下的使用者機密.
- 環境變數.
- 命令列引數
4.配置控制檯和調式輸出的日誌記錄;
5.啟用IIS整合.
未完待續...