国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

.NET Core部署為Windows服務的詳細步驟

瀏覽:136日期:2022-06-09 11:19:26
目錄
  • 一、概述
  • 二、.NET Core部署Windows服務
    • 1、項目中需要的配置
    • 2、服務器中使用sc.exe工具部署Windows服務
  • 三、NetCore項目部署為Linux服務
    • 1、安裝 .net core相關環(huán)境
    • 2、項目中需要的配置
    • 3、部署服務

一、概述

目前測試了下面兩個項目,均可以部署為Windows服務運行。部署的方式

二、.NET Core部署Windows服務

1、項目中需要的配置

想要將.NET Core部署為window服務,項目中需要進行以下配置:項目中引入Microsoft.Extensions.Hosting.WindowsServices包

修改Program.cs文件,添加UseWindowsService()方法調用

using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Hosting;using System.Net;namespace XXService{    public class Program    {public static void Main(string[] args){    CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args){    return Host.CreateDefaultBuilder(args)//使用默認配置實例化Host主機      .UseWindowsService()//指定項目可以部署為Windows服務.ConfigureWebHostDefaults(webBuilder =>{    webBuilder.UseStartup<Startup>()    .UseKestrel(options =>    {options.Listen(IPAddress.Any, 50003);//指定端口號,不然如果部署了多個服務,容易出現端口號占用options.Limits.MaxRequestBodySize = null;    }); ;}).UseDefaultServiceProvider(options => options.ValidateScopes = false);}    }}

2、服務器中使用sc.exe工具部署Windows服務

sc.exe是幫助開發(fā)部署 WindowsNT 服務的工具,路徑: C:\Windows\System32\sc.exe。

(1)將項目發(fā)布到服務器

(2)使用管理員權限運行PowerShell

(3)部署的相關命令:ServiceName是自定義的服務名稱,可以自行修改

## 創(chuàng)建服務sc.exe create ServiceName  BinPath=C:\xx\ClearFontService\ClearFontService.exe## 啟動服務sc.exe start ServiceName## 停止服務sc.exe stop ServiceName## 刪除服務sc.exe delete ServiceName## 添加服務描述sc description ServiceName "描述"## 改變服務的啟動方式 手動/自動/禁用 sc.exe config ServiceName start= demand/auto/disabled

(4)創(chuàng)建安裝腳本install.bat

set serviceName=ServiceNameset serviceFilePath=C:\xx\ClearFontService\ClearFontService.exeset serviceDescription=服務描述sc.exe create %serviceName%  BinPath=%serviceFilePath%sc.exe config %serviceName%    start=auto  sc.exe description %serviceName%  %serviceDescription%sc.exe start  %serviceName%pause

(5)卸載服務腳本unstall.bat

set serviceName=ServiceNamesc.exe stop   %serviceName% sc.exe delete %serviceName% pause

使用管理員權限運行腳本

三、NetCore項目部署為Linux服務

環(huán)境:操作系統(tǒng)Centos 8系統(tǒng)

1、安裝 .net core相關環(huán)境

注冊 Microsoft 密鑰和源:

 sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

安裝 .NET Core SDK:

sudo yum install aspnetcore-runtime-3.1

安裝完成之后驗證:

# 驗證dotnet core runtime是否安裝成功dotnet --version#查看系統(tǒng)中包含的.net core runtime版本dotnet --list-runtimes

2、項目中需要的配置

項目中引入Microsoft.Extensions.Hosting.Systemd包

修改Program.cs文件,添加UseSystemd()方法調用,可以和UseWindowsService()共存

using?Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Hosting;using System.Net;namespace ClearFontService{    public class Program    {public static void Main(string[] args){    CreateHostBuilder(args).Build().Run();}public static IHostBuilder CreateHostBuilder(string[] args){    return Host.CreateDefaultBuilder(args)//使用默認配置實例化Host主機      .UseWindowsService() .UseSystemd().ConfigureWebHostDefaults(webBuilder =>{    webBuilder.UseStartup<Startup>()    .UseKestrel(options =>    {options.Listen(IPAddress.Any, 50003);options.Limits.MaxRequestBodySize = null;    }); ;}).UseDefaultServiceProvider(options => options.ValidateScopes = false);}    }}

然后把發(fā)布文件移至linux系統(tǒng)

3、部署服務

linux的服務是通過systemd守護進程部署的?,F在在系統(tǒng)中我們有了一個發(fā)布后的應用程序,我們需要為systemd創(chuàng)建配置文件部署服務。步驟如下:

(1)創(chuàng)建一個.service文件(我們要部署服務,因此需要.service文件),填入以下內容??梢栽贚inux中直接創(chuàng)建或者通過windows創(chuàng)建然后拷貝至linux。

[Unit]Description= my test app[Service]Type=notifyExecStart=/usr/bin/dotnet  /home/demo/WorkerService.dll[Install]WantedBy=multi-user.target
  • Description:描述,看個人需要是否添加。不需要可以去掉。只留下 [Service] 和 [Install]
  • Type=notify:當前服務啟動完畢,會通知Systemd,再繼續(xù)往下執(zhí)行
  • ExecStart:啟動當前服務的命令,程序如何啟動,第一個路徑是固定路徑。第二個路徑是應用程序的dll路徑(可以自定義)
  • WantedBy:表示該服務所在的 Target服務組, multi-user.target,表示多用戶命令行狀態(tài)。

(2).service文件移動至/etc/systemd/system/ 固定目錄下,假設自定義文件名稱為:testapp.service(如果使用其他名稱,請更改testapp)

(3)使用systemctl命令重新加載新的配置文件

sudo systemctl daemon-reload

(4)查看相關服務狀態(tài)

sudo systemctl status testapp

您應該看到類似以下的內容:

(5)這表明您已注冊的新服務已禁用,我們可以通過運行以下命令來啟動我們的服務:

sudo systemctl start testapp.service

(6)重新運行sudosystemctl status testapp 查看服務狀態(tài)顯示已激活正在運行中

(7)設置服務開機自啟

sudo systemctl enable testapp.service

到此我們的服務已經完整的部署到了linux系統(tǒng)中。

(8)現在我們有一個運行了systemd的應用程序,我們可以看看日志記錄集成。使用systemd的好處之一是可以使用journalctl訪問的集中式日志記錄系統(tǒng)。首先,我們可以使用journalctl(訪問日志的命令)查看服務日志:

sudo journalctl -u testapp

可以看到我們的程序正在運行,可以使用↑↓ ← →查看日志內容。或者使用grep搜索。q 鍵退出

(9)卸載自定義服務

servicename=testapp.servicesystemctl stop $servicenamesystemctl disable $servicenamerm -rf /etc/systemd/system/$servicenamerm -rf /etc/systemd/system/$servicename symlinks that might be relatedsystemctl daemon-reloadsystemctl reset-failed

到此這篇關于.NET Core部署為Windows服務的文章就介紹到這了,更多相關.NET Core部署Windows內容請搜索以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持!

標簽: ASP.NET
主站蜘蛛池模板: 欧美一级大尺度毛片 | 国产精品夜色视频一级区 | 欧美极品在线 | 真人一级一级特黄高清毛片 | 色综合亚洲七七久久桃花影院 | 国产精品黄页网站在线播放免费 | 久久久久久国产精品三级 | 香蕉福利久久福利久久香蕉 | 成年女人免费又黄又爽视频 | 成人α片 | 成人午夜两性视频免费看 | 国产一级片大全 | 成年午夜一级毛片视频 | swag国产精品一区二区 | 中国黄色一级大片 | 久热精品免费视频 | 最近中文字幕精彩视频 | 中文字幕一区在线播放 | 亚洲天堂免费在线 | 国产大臿蕉香蕉大视频 | 神马三级我不卡 | 天堂8资源在线官网资源 | 亚洲一区欧洲一区 | 亚洲综合首页 | 国产免费一区二区在线看 | 毛片在线看免费 | 一级做a爰片久久毛片美女 一级做a爰片久久毛片免费看 | 九九精品视频在线观看 | 久久极品视频 | 亚洲欧美日韩久久精品第一区 | 男女交性拍拍拍高清视频 | 亚洲国产一区二区三区综合片 | 男人又粗又硬桶女人免费 | 宅男69免费永久网站 | 免费区一级欧美毛片 | 精品自拍视频在线观看 | 久久久久久国产视频 | 日韩视频国产 | 国产成视频| 亚洲国产品综合人成综合网站 | 美女黄网站人色视频免费国产 |