.net core部署到windows服务上的完整步骤 |
|
本文标签:.net,core部署 前言 Net core 项目部门在Windows有很多种方式,大致有以下几种,
其中优劣对比在这不进行累述 。我今天是把它搭建到windows服务上的,这种方式对于我们现有dotnet来说相对美观(一个黑框框,一个看不到),电脑重启可以自动重启 。 1.实现 1.1.下载nssm 官网http://www.nssm.cc/,下载地址http://www.nssm.cc/download 1.2.搭建windows 服务 找到文件夹下建立的Install.bat 点击运行弹出操作窗体 。 Install.bat内容: %'d0 cd %'dp0 nssm install NPSWebCoreService PAUSE
Path:选择系统运行bat----C:NpsCoreWeb1run.bat ps:因为我们系统中要特殊处理所以直接执行了bat 。此内容正常是填写C:Program Filesdotnetdotnet.exe. 因为要执行dotnet命令,我这些操作实在bat中执行的 。 Startup directory:bat 所在目录不用改变; ps:发布项目文件夹的地址 。 Arguments:为空; ps:项目运行dll: Service name:我写在install.bat 批处理里面了,不要改变,因为代码中重启服务我这是写死的 。 。 ps:创建线管名称即可,即windows 服务名称 。 然后点击Install service按钮就完成了部署 。 注:红色字体为是一般处理方式,非红色是我们系统中处理的方式 1.2.3 启动服务 让后输入网站就可以访问了
3. Nssm 3.1.输入nssm 了解其命令行 3.2.官网http://www.nssm.cc/usage 4. 针对与咱们系统的问题的处理方案 4.1. 日志问题,nssm 中path 文件运行bat 不要运行dotnet.exe. Log4net 配置问题 。 4.2. Office 转换pdf 问题,windows servers 2008 服务器缺少com组件缺少窗口,我在程序中增加了相关代码,如果没有权限请手动创建(服务器2008 r2 ,2016都能创建) System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Office Excel 不能访问文件“D:BenzDaimlerBenz.WinLSHBizPlanFigure.xls” 。 可能的原因有: ? 文件名称或路径不存在 。 此问题的出现 我十分不解 。 解决方案 也十分疑惑
即在C:WindowsSystem32configsystemprofile和C:WindowsSysWOW64configsystemprofile目录下创建名为Desktop目录即可解决问题 该方法确实解决了我的问题 4.3.数据库备份重启服务问题,改为重启windows服务,所以请用上面的install.bat运行不要,改变Service name 。 重启服务代码:
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 服务问题,担心再启服务器的时候,mysql和windows 服务启动顺序的问题,我在启动bat 中怎么了判断mysql服务是否启动的判断 。 bat 内容:
@echo off
SETLOCAL enabledelayedexpansion
rem 关闭自动输出
:begin
for /f "skip=3 tokens=4" %%i in ('sc query MySQL') do set "zt=%%i" &goto :next
:next
if /i "%zt%"=="RUNNING" (
echo 已经发现该服务在运行 。
) else (
net start MySQL80
echo 已经发现该服务在运行1 。
)
rem 接收输入
rem 输出得到的输入信息
echo 启动NPSWebCore
dotnet ./NPSWebCore.dll
@echo 启动结束
exit
总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持 。 |