本篇內(nèi)容主要講解“NET Core中的Worker Service是什么/怎么用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“NET Core中的Worker Service是什么/怎么用”吧!
在細河等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站制作,細河網(wǎng)站建設(shè)費用合理。當(dāng)你想到ASP.NET Core時,可能會想到Web應(yīng)用程序后端代碼,包括MVC和WebAPI。MVC視圖和Razor頁面還允許使用后端代碼生成帶有HTML元素的前端UI。全新的Blazor更進一步,允許使用WebAssembly在Web瀏覽器中運行客戶端.NET代碼。最后,我們現(xiàn)在有了一個Worker Service應(yīng)用程序的模板。
這是在ASP.NET Core早期預(yù)覽中引入的。雖然項目模板最初列在Web模板下,但此后在向?qū)е兄匦露ㄎ涣艘粋€級別。這是在.NET Core中創(chuàng)建長時間運行的跨平臺服務(wù)的好方法。本文介紹Windows操作系統(tǒng)。
在VisualStudio 2019中創(chuàng)建新的Worker Service項目的最快方法是使用新模板。還可以使用適當(dāng)?shù)腄otNetCLI命令。
啟動VisualStudio并選擇Worker Service模板,如下所示:
要使用命令行,使用以下命令,-o是一個可選標志,用于為項目提供輸出文件夾名:
dotnet new worker -o myproject
Program.cs類包含Main()方法和CreateHostBuilder()方法。這可以在下面的片段中看到:
public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseWindowsService() .ConfigureServices(services => { services.AddHostedService<Worker>(); }); }
要注意的事情:
1. Main方法調(diào)用CreateHostBuilder()方法,并運行它。
2. 在ASP.NET Core中,WebHostBuilder將被Generic HostBuilder替代。
3. CreateHostBuilder()創(chuàng)建主機并通過調(diào)用AddHostService<T>
Worker.cs,定義如下:
public class Worker : BackgroundService { // ... protected override async Task ExecuteAsync(CancellationToken stoppingToken) { // do stuff here } }
要注意的事情:
1. Worker類實現(xiàn)BackgroundService 類,它來自命名空間Microsoft.Extensions.Hoting
2. 然后,Worker類可以重寫ExecuteAsync()方法來執(zhí)行任何長期運行的任務(wù)。
若要在Worker Service項目中使用日志記錄,可以在Program.cs:
using Microsoft.Extensions.Logging; public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseWindowsService() .ConfigureLogging(loggerFactory => loggerFactory.AddEventLog()) .ConfigureServices(services => { services.AddHostedService<Worker>(); });
1.在使用擴展方法之前,將其NuGet包添加到項目中:
Microsoft.Extensions.Logging.EventLog
2.將適當(dāng)?shù)拿臻g添加到代碼中:
using Microsoft.Extensions.Logging;
3.調(diào)用方法ConfigreLogging()并調(diào)用適當(dāng)?shù)娜罩居涗浄椒ǎ纾篈ddEventLog()。
AddConsole()
AddDebug()
AddEventLog()
AddEventSourceLogger()
這個Worker類通過注入ILogger<Work>對象到構(gòu)造函數(shù)中:
private readonly ILogger<Worker> _logger; public Worker(ILogger<Worker> logger) { _logger = logger; }
在繼續(xù)之前,請將調(diào)用添加把UseWindowsService()添加到Program類或者確認它已經(jīng)在那里了。官方文檔中UseServiceBaseLifetime()在預(yù)覽版中。在新的版本此方法已重命名為UseWindowsService()中。
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseWindowsService() .ConfigureServices(services => { services.AddHostedService<Worker>(); });
根據(jù)代碼文檔,UseWindowsService()進行下列工作:
1. 將主機生存期設(shè)置為WindowsServiceLifetime
2. 設(shè)置 ContentRoot
3. 啟用以應(yīng)用程序名稱作為默認名稱的事件日志記錄。
你可以以各種方式運行Worker Service:
1.在VisualStudio中生成和調(diào)試/運行。
2.發(fā)布到exe文件并運行它
3.運行sc(從Windows\System 32)創(chuàng)建新服務(wù)
若要將Worker Service發(fā)布為具有依賴關(guān)系的exe文件,請運行以下命令:
dotnet publish -o C:\path\to\project\pubfolder
-o參數(shù)可用于指定要生成已發(fā)布文件的文件夾的路徑。它可以是指向項目文件夾的路徑,然后是一個新的子文件夾名,以保存已發(fā)布的文件。
若要創(chuàng)建新服務(wù),請運行sc.exe從System 32文件夾中傳入從發(fā)布命令生成的exe文件的名稱。
> C:\Windows\System32\sc create MyServiceName binPath=C:\path\to\project\pubfolder\MyProjectName.exe
當(dāng)手動運行服務(wù)時,你將看到以下的日志輸出:
info: WorkerServiceSample.Worker[0] Making doc 1 at: 06/09/2019 00:09:52 -04:00Making your document... info: WorkerServiceSample.Worker[0] Making doc 2 at: 06/09/2019 00:10:05 -04:00Making your document... info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development
服務(wù)安裝完成后,會出現(xiàn)在Windows的服務(wù)列表中:
到此,相信大家對“NET Core中的Worker Service是什么/怎么用”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
當(dāng)前名稱:NETCore中的WorkerService是什么/怎么用-創(chuàng)新互聯(lián)
分享鏈接:http://jinyejixie.com/article2/dhdhic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管、搜索引擎優(yōu)化、手機網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容