.net core部署到windows服務(wù)上的完整步驟
前言
Net core 項(xiàng)目部門在Windows有很多種方式,大致有以下幾種,
- dotnet 命令,
- iis(windowshosts),
- 一些開源的應(yīng)用容器(docker )
- 基于一些exe 程序,微軟官網(wǎng)上案例
- 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
本文標(biāo)題:.net core部署到windows服務(wù)上的完整步驟
本文地址:http://www.jygsgssxh.com/a1/ASP_NET/10869.html
您可能感興趣的文章
- 01-11如何給asp.net core寫個(gè)簡(jiǎn)單的健康檢查
- 01-11淺析.Net Core中Json配置的自動(dòng)更新
- 01-11.net core高吞吐遠(yuǎn)程方法如何調(diào)用組件XRPC詳解
- 01-11.NET Core 遷移躺坑記續(xù)集之Win下莫名其妙的超時(shí)
- 01-11.NET開發(fā)人員關(guān)于ML.NET的入門學(xué)習(xí)
- 01-11docker部署Asp.net core應(yīng)用的完整步驟
- 01-11.net core webapi jwt 更為清爽的認(rèn)證詳解
- 01-11ASP.NET Core靜態(tài)文件的使用方法
- 01-11.NET Core 3.0之創(chuàng)建基于Consul的Configuration擴(kuò)展組件
- 01-11.net core EF Core調(diào)用存儲(chǔ)過程的方式


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-11vscode extension插件開發(fā)詳解
- 01-11VsCode插件開發(fā)之插件初步通信的方法
- 01-11如何給asp.net core寫個(gè)簡(jiǎn)單的健康檢查
- 01-11.net core高吞吐遠(yuǎn)程方法如何調(diào)用組件
- 01-11淺析.Net Core中Json配置的自動(dòng)更新
- 01-11.NET開發(fā)人員關(guān)于ML.NET的入門學(xué)習(xí)
- 01-11.NET Core 遷移躺坑記續(xù)集之Win下莫名其
- 01-11.net core webapi jwt 更為清爽的認(rèn)證詳解
- 01-11docker部署Asp.net core應(yīng)用的完整步驟
- 01-11ASP.NET Core靜態(tài)文件的使用方法
隨機(jī)閱讀
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法


