最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

創(chuàng)建一個(gè) Worker

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

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

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

運(yùn)行 dotnet new worker

作為 Windows 服務(wù)運(yùn)行

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

添加 Microsoft.Extensions.Hosting.WindowsServices NuGet 包

在 Program.cs 的 HostBuilder 中添加對(duì) 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>();
      });
}

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

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

安裝 Worker

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

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

dotnet publish -o c:\code\workerpub

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

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

例如:

安全說明:此命令將服務(wù)使用 local system 運(yùn)行,這通常不是您想要做的事情。相反,您應(yīng)該創(chuàng)建一個(gè)服務(wù)帳戶并以該帳戶運(yùn)行 Windows 服務(wù)。我們不會(huì)在這里討論這個(gè)問題,但是有一些文檔在這里討論它: 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ù)覽版中,我們計(jì)劃通過以下方式改善使用 Worker 的體驗(yàn):

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

結(jié)論

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

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

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

原文: .NET Core Workers as Windows Services

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

相關(guān)文章

  • idea的使用之關(guān)于tomcat熱部署的教程

    idea的使用之關(guān)于tomcat熱部署的教程

    這篇文章主要介紹了idea的使用之關(guān)于tomcat熱部署的教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Mybatis入門教程之新增、更新、刪除功能

    Mybatis入門教程之新增、更新、刪除功能

    這篇文章給大家介紹了Mybatis進(jìn)行基本的增刪改操作,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下
    2017-02-02
  • 聊聊DecimalFormat的用法及各符號(hào)的意義

    聊聊DecimalFormat的用法及各符號(hào)的意義

    這篇文章主要介紹了DecimalFormat的用法及各符號(hào)的意義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • java實(shí)現(xiàn)的xml格式化實(shí)現(xiàn)代碼

    java實(shí)現(xiàn)的xml格式化實(shí)現(xiàn)代碼

    這篇文章主要介紹了java實(shí)現(xiàn)的xml格式化實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2016-11-11
  • Spring Data JPA中findOne()和getOne()用法

    Spring Data JPA中findOne()和getOne()用法

    這篇文章主要介紹了Spring Data JPA中findOne()和getOne()的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • JavaSwing實(shí)現(xiàn)小型學(xué)生管理系統(tǒng)

    JavaSwing實(shí)現(xiàn)小型學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了JavaSwing實(shí)現(xiàn)小型學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java使用JDBC驅(qū)動(dòng)連接MySQL數(shù)據(jù)庫

    Java使用JDBC驅(qū)動(dòng)連接MySQL數(shù)據(jù)庫

    這篇文章主要為大家詳細(xì)介紹了Java使用JDBC驅(qū)動(dòng)連接MySQL數(shù)據(jù)庫的具體步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • ConditionalOnProperty注解的作用和使用方式

    ConditionalOnProperty注解的作用和使用方式

    在SpringBoot項(xiàng)目開發(fā)中,@ConditionalOnProperty注解允許根據(jù)配置文件中的屬性值來控制配置類是否生效,該注解通過屬性name和havingValue來判斷配置是否注入,如果application.properties中的對(duì)應(yīng)屬性值為空或不匹配havingValue設(shè)定值
    2024-09-09
  • Java實(shí)現(xiàn)字符串解析為日期時(shí)間的方法示例

    Java實(shí)現(xiàn)字符串解析為日期時(shí)間的方法示例

    這篇文章主要介紹了Java實(shí)現(xiàn)字符串解析為日期時(shí)間的方法,結(jié)合具體實(shí)例形式分析了java日期時(shí)間字符串的解析操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-04-04
  • SpringBoot中加密模塊的使用

    SpringBoot中加密模塊的使用

    本文主要介紹了SpringBoot中加密模塊的使用,包括對(duì)稱加密、非對(duì)稱加密和哈希加密等,同時(shí)還會(huì)提供相應(yīng)的代碼示例,感興趣的朋友可以參考一下
    2023-05-05

最新評(píng)論

永胜县| 札达县| 武义县| 望奎县| 贵溪市| 江源县| 信宜市| 宁城县| 扶绥县| 太康县| 庄河市| 宣恩县| 阳高县| 德清县| 嘉义市| 台安县| 富源县| 台东县| 林甸县| 丰台区| 新昌县| 咸阳市| 金门县| 景洪市| 班玛县| 古交市| 成安县| 锡林郭勒盟| 连州市| 青海省| 中超| 泰和县| 昌邑市| 西城区| 揭阳市| 乐至县| 临夏市| 右玉县| 库尔勒市| 信丰县| 南阳市|