<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          .NET Core 使用Topshelf方式創(chuàng)建Windows服務(wù)

          共 2002字,需瀏覽 5分鐘

           ·

          2021-05-19 13:26

          1027d9418905ff8734f8ddc10fe68c48.webp


          Topshelf是一個(gè).NET Standard庫(kù),它消除了在.NET Framework和.NET Core中創(chuàng)建Windows服務(wù)的那些麻煩。

          安裝
          Install-Package Topshelf

          17fbd47d0449607dac71f7a2793685b2.webp

          代碼
          using System;using System.Collections.Generic;using System.Text;using Topshelf;
          namespace ConsoleApp2222{ public class LoggingService : ServiceControl { private void Log(string logMessage) { Console.WriteLine(logMessage); }
          public bool Start(HostControl hostControl) { Log("Starting"); return true; }
          public bool Stop(HostControl hostControl) { Log("Stopping"); return true; } }}

          在Program.cs文件的Main方法中

          1、服務(wù)的名稱

          2、服務(wù)是否自動(dòng)啟動(dòng)

          3、服務(wù)崩潰之后的重啟時(shí)間

          using System;using Topshelf;
          namespace ConsoleApp2222{ internal class Program { private static void Main(string[] args) { HostFactory.Run(x => { x.Service<LoggingService>(); x.EnableServiceRecovery(r => r.RestartService(TimeSpan.FromSeconds(10))); x.SetServiceName("TestService"); x.StartAutomatically(); } ); } }}
          部署服務(wù)

          5588d2c8d8a3d3e6caaa20cc483ef9e0.webp

          ConsoleApp2222.exe?install
          ConsoleApp2222.exe?start
          調(diào)試服務(wù)

          如果我們的服務(wù)代碼已經(jīng)在Visual Studio中打開了,我們就可以直接啟動(dòng)調(diào)試。Topshelf會(huì)模擬在控制臺(tái)中啟動(dòng)服務(wù)。我們應(yīng)該能在控制臺(tái)中看到以下的消息。

          6377004398de49834331d7aa65d89a4a.webp

          這確實(shí)符合了我們的需求。它啟動(dòng)了我們的服務(wù),并像真正的Windows服務(wù)一樣在后臺(tái)運(yùn)行。我們可以像往常一樣設(shè)置斷點(diǎn),基本上它遵循的流程和正常安裝的服務(wù)一樣。

          我們可以通過(guò)ctrl+c, 來(lái)關(guān)閉我們的應(yīng)用,但是在運(yùn)行服務(wù)執(zhí)行Stop方法之前,它是不能被關(guān)閉的,這使我們可以調(diào)試服務(wù)的關(guān)閉流程。與調(diào)試指令和配置標(biāo)志相比,這要容易的多。

          這里需要注意一個(gè)問(wèn)題。如果你收到的以下內(nèi)容的消息:

          790d7c70819c362e33619b85e160367d.webp

          這意味著你嘗試調(diào)試的服務(wù)實(shí)際上已經(jīng)作為Windows服務(wù)被安裝在系統(tǒng)中了,你需要停止(不需要卸載)這個(gè)正在運(yùn)行的服務(wù),才可以正常調(diào)試。

          參考文檔

          https://topshelf.readthedocs.io/en/latest/configuration/config_api.html

          https://github.com/Topshelf/Topshelf

          http://topshelf-project.com/



          往期精彩回顧



          【推薦】.NET Core開發(fā)實(shí)戰(zhàn)視頻課程?★★★

          .NET Core實(shí)戰(zhàn)項(xiàng)目之CMS 第一章 入門篇-開篇及總體規(guī)劃

          【.NET Core微服務(wù)實(shí)戰(zhàn)-統(tǒng)一身份認(rèn)證】開篇及目錄索引

          Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)

          .NET Core中的一個(gè)接口多種實(shí)現(xiàn)的依賴注入與動(dòng)態(tài)選擇看這篇就夠了

          10個(gè)小技巧助您寫出高性能的ASP.NET Core代碼

          用abp vNext快速開發(fā)Quartz.NET定時(shí)任務(wù)管理界面

          在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實(shí)現(xiàn)作業(yè)調(diào)度

          現(xiàn)身說(shuō)法:實(shí)際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化

          關(guān)于C#異步編程你應(yīng)該了解的幾點(diǎn)建議

          C#異步編程看這篇就夠了


          瀏覽 70
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美A片免费观看 | 黄色操逼国产 | 在线视频 亚洲 | 精品一二三免费区 | 日B免费视频 |