日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

.NET 實現啟動時重定向程序運行路徑及 Windows 服務運行模式部署的方法

瀏覽:331日期:2022-06-08 18:33:11

日常工作中有時候會遇到需要將程序直接在服務器上運行,而不依賴于 IIS 托管的情況,直接運行有兩種方式,一種是部署為 服務模式,另一種則是 直接啟動 .NET 發布之后的 exe 文件以 控制臺模式運行,控制臺模式運行主要問題是服務器在重新啟動之后不會自動啟動,當然也可以選擇配置 Windows 計劃任務的形式讓 控制臺在服務器開機時自動啟動, 今天給大家分享 .NET 控制臺程序和 .NET 開發的 WebAPI 及 Web 項目在以 Windows 服務模式部署時的一些注意事項。

.NET 項目想要部署為 Windows 服務,首先需要通過 NuGet 安裝Microsoft.Extensions.Hosting.WindowsServices ,然后在程序啟動時做如下配置:

控制臺程序:

using Common;namespace TaskService{    class Program    {static void Main(string[] args){    EnvironmentHelper.ChangeDirectory(args);    IHost host = Host.CreateDefaultBuilder(args).UseWindowsService().ConfigureServices((hostContext, services) =>{    ///各種服務注入}).Build();    host.Run();}    }}

Web 及 WebAPI 程序:

using Common;namespace WebAPI{    public class Program    {public static void Main(string[] args){    EnvironmentHelper.ChangeDirectory(args);    var builder = WebApplication.CreateBuilder(args);    builder.Host.UseWindowsService();    //各種服務注入    var app = builder.Build();    app.Run();}    }}

以上是兩種常見程序的啟動 Main 函數的配置 Windows 托管模式的演示,其中一個關鍵點在于EnvironmentHelper.ChangeDirectory(args);

該方法用于在服務啟動時將運行路徑重新指向為程序所在目錄,默認情況下 .NET 程序在命令啟動時,運行路徑為執行命令的路徑比如在 cmd 中執行如下命令:

雖然程序是放在 d:\Publish\ 文件夾中,但是因為我們執行啟動程序命令時的路徑是在 c:\User\ZhangXiaoDong 所以程序啟動之后的運行環境路徑就是 命令執行當前目錄,c:\User\ZhangXiaoDong 這時候如果我們的代碼中有包含一些涉及到操作 程序所在目錄的 IO 操作時就會產生異常,比如 加載 web 項目下的 wwwroot 文件夾中的靜態資源,這些都會異常,所以我們需要在程序啟動時將 運行目錄重定向到 我們的程序所在目錄,就用到了EnvironmentHelper.ChangeDirectory(args); 這個方法。

EnvironmentHelper.ChangeDirectory(args); 實現如下:

using Microsoft.Extensions.Configuration.CommandLine;namespace Common{    /// <summary>    /// 環境操作Helper方法    /// </summary>    public class EnvironmentHelper    {/// <summary>/// 改變工作目錄/// </summary>/// <param name="args"></param>public static void ChangeDirectory(string[] args){    var cmdConf = new CommandLineConfigurationProvider(args);    cmdConf.Load();    if (cmdConf.TryGet("cd", out string cdStr) && bool.TryParse(cdStr, out bool cd) && cd)    {Directory.SetCurrentDirectory(AppContext.BaseDirectory);    }}    }}

主要邏輯是判斷啟動命令中 cd 參數的值是否為 true ,如果 cd=true 則重新配置程序的CurrentDirectory 為程序文件所在目錄。

調整之后我們在啟動程序時只要多添加一個參數即可,如下:

只要在原本的啟動命令dotnet d:\Publish\WebAPI.dll 優化為dotnet d:\Publish\WebAPI.dll --cd='true' 即可,從上圖可以看出雖然我們的啟動命令還是在c:\User\ZhangXiaoDong 目錄執行的,但是程序的運行目錄已經被重定向到了dotnet d:\Publish\ 這個路徑也正是我們的程序所在路徑。

有了上面的基礎,我們就可以利用 Windows服務器的 SC 指令來配置服務部署了,具體命令如下:

安裝
sc.exe create MyAPI binpath= 'd:\Publish\WebAPI.exe --cd="true"' start= auto

安裝成功之后控制臺會輸出[SC] CreateService 成功 ,其中MyAPI 時我們創建服務時指定的服務名稱,binpath 即是我們的程序路徑,注意 true 是 用英文狀態的雙引號包裹,然后整個 binpath 采用因為狀態的 單引號包裹,start= auto 則表示將我們的 MyAPI 服務設置為自動啟動。

在 Windows 服務管理中也可以看到我們的服務

啟動命令和停止命令,和我們日常操作普通服務的命令一樣都是 net start 服務名 和 net stop 服務名,如下:
啟動:
net start MyAPI

停止
net stop MyAPI

卸載命令:
sc.exe delete 服務名稱
如:sc.exe delete MyAPI

至此 .NET 實現啟動時重定向程序運行路徑及 Windows 服務運行模式部署 就講解完了,有任何不明白的,可以在文章下面評論或者私信我,歡迎大家積極的討論交流,有興趣的朋友可以關注我目前在維護的一個 .NET 基礎框架項目,項目地址如下

到此這篇關于.NET 實現啟動時重定向程序運行路徑及 Windows 服務運行模式部署的文章就介紹到這了,更多相關.NET Windows 服務運行模式部署內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: ASP.NET
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品国产精品久久一区免费式| 日韩一区二区三区免费播放| 久久网站免费观看| 色婷婷综合网| 黑人精品一区| 在线精品亚洲欧美日韩国产| 中文字幕高清在线播放| 欧美精品二区| 麻豆91小视频| 国产精品nxnn| 午夜精品亚洲| 久久久久中文| 亚洲精品伦理| 欧美伊人影院| 国产精品第十页| 欧美成人一二区| 国产一区二区三区天码| 国产福利电影在线播放| 97精品一区| 极品日韩av| 亚洲综合色婷婷在线观看| 日韩高清一区在线| 日韩精选在线| 久久不卡日韩美女| 国产一区二区三区久久| 三上悠亚国产精品一区二区三区 | 日韩高清一区在线| 国产午夜精品一区在线观看| 国产一区精品福利| 欧美日韩尤物久久| 久久亚洲影院| 国产精品欧美日韩一区| 高清精品久久| 久久一级电影| 亚洲免费毛片| 精品一区电影| 日韩午夜免费| 国产精品亚洲人成在99www| 中文字幕在线视频网站| 亚洲一区激情| 国产精品中文字幕亚洲欧美 | 欧美激情综合| 免费不卡中文字幕在线| 中文字幕日本一区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 免费观看不卡av| 亚洲精品在线二区| 视频一区欧美精品| 欧美不卡高清| 日本精品影院| 岛国av在线网站| 国产精品亚洲一区二区三区在线观看| 日韩精品成人在线观看| 一区二区三区四区在线观看国产日韩| 久久不射中文字幕| 亚洲精品影视| 欧美成人综合| 欧美 日韩 国产精品免费观看| 国产精品欧美一区二区三区不卡| 蜜桃视频一区二区三区在线观看| 欧美日中文字幕| 久久久久99| 国产日产高清欧美一区二区三区 | 免费视频一区二区| 日韩欧美另类一区二区| 婷婷综合国产| 欧美在线不卡| 国产激情综合| 99tv成人| 国产日产精品_国产精品毛片| 欧美中文一区二区| 国产精品一区二区免费福利视频| 欧美日韩第一| 国产在线一区不卡| 国产专区精品| 国精品一区二区三区| 水蜜桃久久夜色精品一区的特点 | 97在线精品| 亚洲成人精品| 日韩精品a在线观看91| 中文字幕人成乱码在线观看 | 国产激情久久| 免费人成在线不卡| 黄毛片在线观看| 国产调教精品| 亚洲精品美女91| 久久九九国产| 成人精品久久| 国产欧美日韩一区二区三区四区 | 中文欧美日韩| 国产精品xx| 国产精品亚洲综合久久| 首页国产欧美久久| 欧美日韩色图| 成人小电影网站| 麻豆极品一区二区三区| 日韩黄色免费网站| 久久亚洲色图| 影音国产精品| 香蕉久久99| 亚洲天堂一区二区| 国产一区二区三区四区| 国产精品多人| 日韩一区二区三区免费视频| aa国产精品| 91成人超碰| 国产精品99免费看| 色88888久久久久久影院| 国产在视频一区二区三区吞精| 日韩高清不卡一区| 日韩有吗在线观看| 中文字幕日韩欧美精品高清在线| 亚洲成人三区| 久久要要av| 亚洲自拍另类| 久久久国产精品一区二区中文| 国产精品传媒麻豆hd| 日韩一区二区三区精品视频第3页| 天堂网在线观看国产精品| 国产精品视频一区二区三区四蜜臂 | 99国产精品免费视频观看| 欧美日韩一区二区三区不卡视频 | 国产精品jk白丝蜜臀av小说| 国产精品超碰| 精品一区三区| 欧美专区一区二区三区| 精品成人18| 97欧美在线视频| 日韩精品一页| 91精品福利| 国产色噜噜噜91在线精品| 日本免费一区二区视频| 国产一卡不卡| 国产精品亚洲产品| 国产日韩欧美三级| 国产乱子精品一区二区在线观看| 欧美日韩xxxx| 国产精品成人自拍| 国产情侣久久| 久久精品观看| 九一精品国产| 免费人成在线不卡| 精品国产91| 欧美 日韩 国产精品免费观看| 亚洲欧美日本日韩| 欧美日韩在线播放视频| 日韩有码av| 欧美日韩亚洲国产精品| 国产精品香蕉| 在线天堂资源www在线污| 91精品精品| 国产女优一区| 日本不卡中文字幕| 美女久久久久久| 国产 日韩 欧美一区| 欧美激情 亚洲a∨综合| 精品三级av| 欧美一区三区| 日韩综合一区二区三区| 国产福利一区二区三区在线播放| 成人国产精选| 亚洲激情五月| 天堂va欧美ⅴa亚洲va一国产| 国产精品99精品一区二区三区∴| 国产白浆在线免费观看| 亚洲少妇一区| 国产精品66| 精品一区免费| 日韩精品一区二区三区中文 | 亚洲欧美视频一区二区三区| 日韩高清欧美激情| 日本精品黄色| 男人操女人的视频在线观看欧美 | 蜜桃视频一区二区| 国产精品巨作av| 久久中文字幕二区| 日韩精品视频在线看| 精品欧美视频| 亚洲少妇诱惑| 麻豆国产精品| 欧美日韩国产免费观看| 国产亚洲观看| 国产精品久久久久久久免费观看 | 97国产精品| 国产专区一区| 久久精品99久久久| 久久久人人人| 日本欧美一区二区在线观看| 美女福利一区二区三区| 亚洲一二av| 98精品久久久久久久| 中文字幕免费一区二区| 国产96在线亚洲| 亚洲尤物在线| 久久精品理论片| 免费国产自线拍一欧美视频| 精品入口麻豆88视频| 免费美女久久99| 四虎8848精品成人免费网站 | 夜夜嗨网站十八久久|