雷火电竞-中国电竞赛事及体育赛事平台

歡迎來到入門教程網(wǎng)!

ASP.NET

當(dāng)前位置:主頁(yè) > 網(wǎng)絡(luò)編程 > ASP.NET >

.net core部署到windows服務(wù)上的完整步驟

來源:本站原創(chuàng)|時(shí)間:2020-01-11|欄目:ASP.NET|點(diǎn)擊:

前言

Net core 項(xiàng)目部門在Windows有很多種方式,大致有以下幾種,

  1. dotnet 命令,
  2. iis(windowshosts),
  3. 一些開源的應(yīng)用容器(docker )
  4. 基于一些exe 程序,微軟官網(wǎng)上案例
  5. Nssm 搭建windows服務(wù)

其中優(yōu)劣對(duì)比在這不進(jìn)行累述。我今天是把它搭建到windows服務(wù)上的,這種方式對(duì)于我們現(xiàn)有dotnet來說相對(duì)美觀(一個(gè)黑框框,一個(gè)看不到),電腦重啟可以自動(dòng)重啟。

1.實(shí)現(xiàn)

1.1.下載nssm

官網(wǎng)http://www.nssm.cc/,下載地址http://www.nssm.cc/download

1.2.搭建windows 服務(wù) 

找到文件夾下建立的Install.bat 點(diǎn)擊運(yùn)行彈出操作窗體。

Install.bat內(nèi)容:

%~d0
cd %~dp0
nssm install NPSWebCoreService
PAUSE

Path:選擇系統(tǒng)運(yùn)行bat----C:\Nps\CoreWeb\1run.bat

ps:因?yàn)槲覀兿到y(tǒng)中要特殊處理所以直接執(zhí)行了bat。此內(nèi)容正常是填寫C:\Program Files\dotnet\dotnet.exe. 因?yàn)橐獔?zhí)行dotnet命令,我這些操作實(shí)在bat中執(zhí)行的。

Startup directory:bat 所在目錄不用改變;

ps:發(fā)布項(xiàng)目文件夾的地址。

Arguments:為空;

ps:項(xiàng)目運(yùn)行dll:

Service name:我寫在install.bat 批處理里面了,不要改變,因?yàn)榇a中重啟服務(wù)我這是寫死的。。

ps:創(chuàng)建線管名稱即可,即windows 服務(wù)名稱。

然后點(diǎn)擊Install service按鈕就完成了部署。

注:紅色字體為是一般處理方式,非紅色是我們系統(tǒng)中處理的方式

1.2.3 啟動(dòng)服務(wù)

讓后輸入網(wǎng)站就可以訪問了

3. Nssm

3.1.輸入nssm 了解其命令行

3.2.官網(wǎng)http://www.nssm.cc/usage

4. 針對(duì)與咱們系統(tǒng)的問題的處理方案 

4.1. 日志問題,nssm 中path 文件運(yùn)行bat 不要運(yùn)行dotnet.exe. Log4net 配置問題。

4.2. Office 轉(zhuǎn)換pdf 問題,windows servers 2008 服務(wù)器缺少com組件缺少窗口,我在程序中增加了相關(guān)代碼,如果沒有權(quán)限請(qǐng)手動(dòng)創(chuàng)建(服務(wù)器2008 r2 ,2016都能創(chuàng)建)

System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Office Excel 不能訪問文件“D:\Benz\Daimler\Benz.Win\LSHBizPlanFigure.xls”。 可能的原因有:

? 文件名稱或路徑不存在。
? 文件正被其他程序使用。
? 您正要保存的工作簿與當(dāng)前打開的工作簿同名。

此問題的出現(xiàn) 我十分不解。

解決方案 也十分疑惑

This solution is ...

?Windows 2008 Server x64
Please make this folder.

C:\Windows\SysWOW64\config\systemprofile\Desktop

?Windows 2008 Server x86

Please make this folder.

C:\Windows\System32\config\systemprofile\Desktop

...instead of dcomcnfg.exe.

This operation took away office automation problems in my system.

A Desktop folder seems to be necessary in the systemprofile folder to open file by Excel.

It disappears from Windows2008, Windows2003 had the folder,
and I think it cause this error.

即在C:\Windows\System32\config\systemprofile和C:\Windows\SysWOW64\config\systemprofile目錄下創(chuàng)建名為Desktop目錄即可解決問題

該方法確實(shí)解決了我的問題

4.3.數(shù)據(jù)庫(kù)備份重啟服務(wù)問題,改為重啟windows服務(wù),所以請(qǐng)用上面的install.bat運(yùn)行不要,改變Service name。

重啟服務(wù)代碼:

try
 {
 ServiceController service = new ServiceController("NPSWebCoreService");
 if (service.Status == ServiceControllerStatus.Running)
 {
 service.Stop();
 service.WaitForStatus(ServiceControllerStatus.Stopped);
 }
 service.Start();
 service.WaitForStatus(ServiceControllerStatus.Running);
 }
 catch (Exception){}

4.4.netcoreweb要基于mysql 服務(wù)問題,擔(dān)心再啟服務(wù)器的時(shí)候,mysql和windows 服務(wù)啟動(dòng)順序的問題,我在啟動(dòng)bat 中怎么了判斷mysql服務(wù)是否啟動(dòng)的判斷。

bat 內(nèi)容:

@echo off

SETLOCAL enabledelayedexpansion
rem 關(guān)閉自動(dòng)輸出
:begin

for /f "skip=3 tokens=4" %%i in ('sc query MySQL') do set "zt=%%i" &goto :next
:next
if /i "%zt%"=="RUNNING" (
 echo 已經(jīng)發(fā)現(xiàn)該服務(wù)在運(yùn)行。
) else (
 net start MySQL80
 echo 已經(jīng)發(fā)現(xiàn)該服務(wù)在運(yùn)行1。
)

rem 接收輸入
rem 輸出得到的輸入信息
echo 啟動(dòng)NPSWebCore

dotnet ./NPSWebCore.dll

@echo 啟動(dòng)結(jié)束
exit

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)我們的支持。

上一篇:NET Core 3.0 AutoFac內(nèi)置DI替換的新姿勢(shì)分享

欄    目:ASP.NET

下一篇:Asp.Net Core用NLog記錄日志操作方法

本文標(biāo)題:.net core部署到windows服務(wù)上的完整步驟

本文地址:http://www.jygsgssxh.com/a1/ASP_NET/10869.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有