()本文實例環境及版本 .NetCore3.1、windows一、.NetCore創建windows服務,將web項目托管到windows服務中1、新建項目 Worker Service2、引用 Microsoft.Extensions.HostingMicrosoft.Extensions.Hosting.WindowsServices 注意版本為3.1.X3、修改Program public static IHostBuilder CreateHostBuilder(string[] args){var host = Host.CreateDefaultBuilder(args);//判斷當前系統是否為windowsif (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)){//使用windows服務host.UseWindowsService();}host.ConfigureLogging(builder => builder.AddFile());return host.ConfigureServices((hostContext, services) =>{//注冊具體要運行的類services.AddHostedService();});}4、Worker類代碼參考 protected override async Task ExecuteAsync(CancellationToken stoppingToken){_logger.LogInformation("Worker測試 服務開啟了2");stoppingToken.Register(() => _logger.LogInformation("Worker測試 服務正在停止2"));while (!stoppingToken.IsCancellationRequested){_logger.LogInformation("Worker測試 服務在運行中2");await Task.Delay(TimeSpan.FromSeconds(20), stoppingToken);}_logger.LogInformation("Worker測試 服務已停止2");}public override Task StartAsync(CancellationToken cancellationToken){_logger.LogInformation("Worker測試 服務開啟了3");return base.StartAsync(cancellationToken);}public override Task StopAsync(CancellationToken cancellationToken){_logger.LogInformation("Worker測試 服務已停止了3");return 電腦 base.StopAsync(cancellationToken);}5、發布項目,注意修改配置,選擇windows平臺6、cd到發布目錄,輸入sc create 服務名 binpath="項目發布目錄" 來注冊服務如:然后可使用如下命令開啟windows服務或手動開啟其他命令//開啟服務sc start 服務名//關閉服務sc stop 服務名//刪除服務sc delete 服務名電腦補充說明:將.NetCore的web項目托管到windows服務中新建web項目,其他操作參看上面,不過記得給系統指定訪問的端口.ConfigureWebHostDefaults(webBuilder =>{//記得指定系統訪問的端口號webBuilder.UseUrls("http://*:5360");webBuilder.UseStartup();})發布時也要選擇windows平臺生成服務后啟動服務,即可通過瀏覽器訪問電腦二、使用NSSM安裝windows服務1、nssm是一個服務封裝程序,它可以將普通exe程序封裝成服務,實現開機自啟動。官網下載地址:https://nssm.cc/download下載后解壓,根據系統選擇64位或32位將nssm.exe程序放到程序的發布目錄根目錄下2、cmd打開命令行cd到程序發布目錄輸入nssm install然后選擇程序的.exe可執行文件配置項說明:Path:運行應用程序的程序Startup directory:應用程序所在的目錄Arguments:應用運行的參數Service name:生成服務的名稱2、最后點擊install service 完成windows服務安裝,在windows服務列表就能看到創建的服務了。然后啟動服務即可。常用命令nssm install servername //創建servername服務,彈出配置界面nssm start servername //啟動服務nssm stop servername //暫停服務nssm restart servername //重新啟動服務nssm remove servername //刪除創建的servername服務nssm edit servername//更改servername服務,彈出修改界面nssm set servername 參數名 參數值 //設置服務參數值才疏學淺,相關文檔等僅供自我總結,如有相關問題可留言交流謝謝電腦