您好,登錄后才能下訂單哦!
本篇內容介紹了“ASP.NET Core通用主機的系統怎么配置”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
ASP.NET Core 2.0 中的 WebHost(實現 IWebHost 的基類)是用于為進程提供 HTTP 服務器功能的基礎結構項目,例如,如果正在實現 MVC Web 應用或 Web API 服務。 它提供 ASP.NET Core 中所有新的基礎結構優點,使用戶能夠使用依賴關系注入,在請求管道中插入中間件等,并精確地將這些 IHostedServices 用于后臺任務。
.NET Core 2.1 中引入了 Host(實現 IHost 的基類)。 它能讓用戶擁有與 WebHost相似的基礎結構,使用它我們可以獲取和Asp.net core一樣的框架功能(依賴項注入、日志、配置、托管服務等),如果我們編寫一個服務的時候,它提供了一個非常好用的框架。一個基本的示例代碼如下:
public static async Task Main(string[] args) { var host = new HostBuilder().Build(); await host.RunAsync(); }
主要有如下兩個步驟
通過HostBuilder生成一個Host
指向Host的Run函數運行主機
前面的代碼只有一個空環境,要實現依賴項注入、日志、配置、托管服務等功能,還需要進一步的配置,本文的這里就簡單的介紹一下通用主機的配置方法。
系統配置有兩個函數ConfigureHostConfiguration和ConfigureAppConfiguration
hostBuilder.ConfigureHostConfiguration(configHost => { configHost.SetBasePath(Directory.GetCurrentDirectory()); configHost.AddJsonFile("hostsettings.json", optional: true); configHost.AddEnvironmentVariables(prefix: "PREFIX_"); configHost.AddCommandLine(args); });
這兩個函數使用比較類似,它們的關系是主機配置用于初始化 IHostingEnvironment,以供在應用的構建過程中使用。
通用主機集成了DI框架,如果要使用DI框架,則需要調用ConfigureServices函數極限依賴關系注入:
hostBuilder.ConfigureServices((context, services) => { services.AddScoped<MyService>(); });
我們可以通過在ConfigureServices中通過DI框架配置日志系統,但HostBuilder單獨提供了一個配置日志的接口ConfigureLogging:
hostBuilder.ConfigureLogging((hostContext, configLogging) => { configLogging.AddConsole(); configLogging.AddDebug(); });
它內部實際上依然是通過DI框架配置的日志系統。
除了通過new一個HostBuilder外,系統還提供了一個創建HostBuilder的方法。
Host.CreateDefaultBuilder()
它的內部也是調用HostBuilder的,但他提供了一般常用的選項,具體包括:
將內容根設置為由 Directory.GetCurrentDirectory 返回的路徑。
通過以下對象加載主機配置:
前綴為 DOTNET_ 的環境變量。(例如,DOTNET_ENVIRONMENT)。
命令行參數。
按以下順序加載應用配置:
appsettings.json。
appsettings.{Environment}.json。
應用在使用入口程序集的 Development 環境中運行時的機密管理器。
環境變量。
命令行參數。
配置控制臺和調試輸出的日志記錄。 日志記錄包含 appsettings.json 或 appsettings.{Environment}.json 文件的日志記錄配置部分中指定的日志篩選規則。
如果應用環境為"開發",請將 ServiceProviderOptions.ValidateScopes 設為 true。
也就是說,它基本上提供了我們所常用的大部分功能,并且它返回的也是一個HostBuilder,我們還可以在它的基礎上接著配置,實現我們系統中的特有功能
“ASP.NET Core通用主機的系統怎么配置”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。