日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

.Net?Core以windows服務方式部署_C#教程

作者:老馬-Max ? 更新時間: 2022-03-30 編程語言

前言

netcore用了這么久,雖然多數都是部署在centos系統,但也有部署在windows上的情況。最省力的部署方式是發布后直接在發布目錄打開cmd,運行dotnet命令。雖然很省力,但是保留一個命令窗口,如果需要同時部署多個程序的話,就會保留多個窗口,而且還不能叉掉,對強迫癥(我這種)來說簡直不能忍。。。。

所以更好的部署方式就是把程序以windows服務的方式部署,還可以設置自動啟動,節省一點運維成本。

怎么做?

首先準備一個core程序,然后引入這個包:

再然后找到main入口:

public static void Main(string[] args)
{
    var host = CreateWebHostBuilder(args).Build();
    if (Debugger.IsAttached)
        host.Run();
    else
        host.RunAsService();
}

Debugger.IsAttached的意思是:程序是否以debug模式啟動,是的話返回true,否則false

這幾行代碼的意思就是:如果是debug模式,就還保持窗口啟動,到了發布環境就以服務方式啟動。

為什么呢?因為只以服務啟動程序的話,debug啟動會報錯,這樣寫更方便。

就這?

當然不是。我們還需要在服務器搞些動作。

當我們把發布好的文件在服務器保存好以后,管理員身份打開cmd,執行這條命令:

sc create 你的服務名稱 binPath= "\"C:\program files\dotnet\dotnet.exe\" \"程序發布目錄\"" DisplayName= "你的服務名稱" start= auto?

(重點:binPath、DisplayName、start這三個參數的等號后面必須帶一個空格)

然后就可以在服務列表里看到它了:

如果上面的操作都沒問題,但服務就是跑不起來,有可能是SDK版本不對,下對版本就可以了。

最后貼上官方文檔地址:https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1&tabs=visual-studio

原文鏈接:https://www.cnblogs.com/muchengqingxin/p/13190189.html

欄目分類
最近更新