欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用.NET Core3.0創(chuàng)建一個Windows服務(wù)的方法

 更新時間:2019年04月01日 14:27:13   作者:Rwing  
這篇文章主要介紹了使用.NET Core3.0創(chuàng)建一個Windows服務(wù)的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

在.NET Core 3.0 中,我們引入了一種名為 Worker Service 的新型應(yīng)用程序模板。此模板旨在為您在 .NET Core 中編寫長時間運行的服務(wù)的提供一個起點。在本演練中,我們將創(chuàng)建一個 worker 并將其作為 Windows 服務(wù)運行。

創(chuàng)建一個 Worker

注意:在我們的預(yù)覽版中,worker 模板與 Web 模板位于同一級菜單中。這將在未來的版本中發(fā)生變化。我們打算將 Worker Service 模板直接放在“創(chuàng)建新項目”菜單中。

在 Visual Studio 中創(chuàng)建 Worker

在命令行中創(chuàng)建 Worker

運行 dotnet new worker

作為 Windows 服務(wù)運行

為了作為 Windows 服務(wù)運行,我們需要我們的 worker 監(jiān)聽來自 ServiceBase 的啟動停止信號,該類型將 Windows 服務(wù)系統(tǒng)暴露給 .NET 應(yīng)用程序。要做到這一點,我們希望:

添加 Microsoft.Extensions.Hosting.WindowsServices NuGet 包

在 Program.cs 的 HostBuilder 中添加對 UseServiceBaseLifetime 的調(diào)用

public class Program
{
  public static void Main(string[] args)
  {
    CreateHostBuilder(args).Build().Run();
  }

  public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
      .UseServiceBaseLifetime()
      .ConfigureServices(services =>
      {
        services.AddHostedService<Worker>();
      });
}

這個方法做了兩件事。首先,它檢查應(yīng)用程序是否真正的作為 Windows 服務(wù)運行,如果不是,那么它什么都不做,這使得這個方法很安全,當(dāng)本地運行或作為 Windows 服務(wù)運行時。您不需要向其添加保護語句,只需在未作為 Windows 服務(wù)安裝時正常運行應(yīng)用程序即可。

其次,它將配置 host 使用 ServiceBaseLifetime。 ServiceBaseLifetime 與 ServiceBase 一起使用,以幫助控制作為 Windows 服務(wù)運行時應(yīng)用程序的生命周期。這會覆蓋處理 CTRL + C 等信號的默認的 ConsoleLifetime 。

安裝 Worker

一旦我們的 worker 使用 ServiceBaseLifetime,我們就需要安裝它:

首先,讓我們發(fā)布應(yīng)用程序。如果我們立刻安裝了 Windows 服務(wù),這意味著只要服務(wù)運行,exe 就會被鎖定。發(fā)布這一步是個很好的方法, 以確保我需要運行服務(wù)的所有文件都在一個位置, 并準(zhǔn)備好安裝。

dotnet publish -o c:\code\workerpub

然后我們就可以在命令行中使用 sc 命令來安裝

sc create workertest binPath=c:\code\workerpub\WorkerTest.exe

例如:

安全說明:此命令將服務(wù)使用 local system 運行,這通常不是您想要做的事情。相反,您應(yīng)該創(chuàng)建一個服務(wù)帳戶并以該帳戶運行 Windows 服務(wù)。我們不會在這里討論這個問題,但是有一些文檔在這里討論它: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.2

日志

日志記錄系統(tǒng)有 Event Log 的提供程序,可以將日志消息直接發(fā)送到 Windows 事件日志。安裝 Microsoft.Extensions.Logging.EventLog 并修改 Program.cs :

public static IHostBuilder CreateHostBuilder(string[] args) =>
  Host.CreateDefaultBuilder(args)
    .ConfigureLogging(loggerFactory => loggerFactory.AddEventLog())
    .ConfigureServices(services =>
    {
      services.AddHostedService<Worker>();
    });

未來工作

在即將到來的預(yù)覽版中,我們計劃通過以下方式改善使用 Worker 的體驗:

  • 將 UseWindowsServiceBaseLifetime 重命名為 UseWindowsService
  • 作為 Windows 服務(wù)運行時,自動的集成 Event Log 日志。

結(jié)論

我們希望您試用這個新模板,并希望您告訴我們它有什么問題,您可以在此處提出任何錯誤或建議:

https://github.com/aspnet/AspNetCore/issues/new/choose 譯者注

原文作者在評論中提到,下一篇文章將講解如何在 Linux/Unix 中創(chuàng)建服務(wù)

原文: .NET Core Workers as Windows Services

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • idea搭建mybatis環(huán)境配置全過程

    idea搭建mybatis環(huán)境配置全過程

    本文介紹了如何以IDEA搭建MyBatis環(huán)境配置的方法,包括步驟和注意事項,通過本文的介紹,可以輕松地以IDEA搭建MyBatis環(huán)境配置,提高開發(fā)效率
    2023-10-10
  • Spring依賴注入與第三方Bean管理基礎(chǔ)詳解

    Spring依賴注入與第三方Bean管理基礎(chǔ)詳解

    依賴注入(Dependency Injection)和控制反轉(zhuǎn)(Inversion of Control)是同一個概念。具體含義是:當(dāng)某個角色(可能是一個Java實例,調(diào)用者)需要另一個角色(另一個Java實例,被調(diào)用者)的協(xié)助時,在 傳統(tǒng)的程序設(shè)計過程中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實例
    2022-12-12
  • javaweb開發(fā)提高效率利器JRebel詳解

    javaweb開發(fā)提高效率利器JRebel詳解

    這篇文章主要介紹了javaweb開發(fā)提高效率利器JRebel詳解,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Maven中pom.xml文件報錯的原因解決

    Maven中pom.xml文件報錯的原因解決

    創(chuàng)建Maven項目的時候,如果你選擇的Packaging為war,那么就會報錯,本文主要介紹了Maven中pom.xml文件報錯的原因解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java 語言守護線程 Daemon Thread使用示例詳解

    Java 語言守護線程 Daemon Thread使用示例詳解

    這篇文章主要為大家介紹了Java 語言守護線程 Daemon Thread使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Java事件處理步驟講解

    Java事件處理步驟講解

    今天小編就為大家分享一篇關(guān)于Java事件處理步驟講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 在SpringBoot項目中解決依賴沖突問題的方法

    在SpringBoot項目中解決依賴沖突問題的方法

    在SpringBoot項目中,依賴沖突是一個常見的問題,特別是當(dāng)項目引入多個第三方庫或框架時,依賴沖突可能導(dǎo)致編譯錯誤、運行時異?;虿豢深A(yù)測的行為,本文給大家介紹了如何在SpringBoot項目中解決以來沖突問題的方法,需要的朋友可以參考下
    2024-01-01
  • Java實現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法示例

    Java實現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法示例

    這篇文章主要介紹了Java實現(xiàn)分解任意輸入數(shù)的質(zhì)因數(shù)算法,涉及java數(shù)學(xué)運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • MyBatis-Plus攔截器實現(xiàn)數(shù)據(jù)權(quán)限控制的方法

    MyBatis-Plus攔截器實現(xiàn)數(shù)據(jù)權(quán)限控制的方法

    MyBatis-Plus是一款基于MyBatis的增強工具,它提供了一些便捷的功能和增強的查詢能力,數(shù)據(jù)權(quán)限控制是在系統(tǒng)中對用戶訪問數(shù)據(jù)進行限制的一種機制,這篇文章主要給大家介紹了關(guān)于MyBatis-Plus攔截器實現(xiàn)數(shù)據(jù)權(quán)限控制的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 基于Hibernate中配置文件的學(xué)習(xí)(分享)

    基于Hibernate中配置文件的學(xué)習(xí)(分享)

    下面小編就為大家?guī)硪黄贖ibernate中配置文件的學(xué)習(xí)(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06

最新評論