.net core 部署到windows服务上的方法
前言
Net core 项目部门在Windows有很多种方式,大致有以下几种,
- dotnet 命令,
- iis(windowshosts),
- 一些开源的应用容器(docker )
- 基于一些exe 程序,微软官网上案例
- Nssm 搭建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:\Nps\CoreWeb\1run.bat
ps:因为我们系统中要特殊处理所以直接执行了bat。此内容正常是填写C:\Program Files\dotnet\dotnet.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都能创建)
https://blog.csdn.net/wyzlwyzl/article/details/48686483
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
.net core 部署到windows服务上的方法的更多相关文章
- 使用NSSM把.Net Core部署至 Windows 服务
为什么部署至Windows Services 在很多情况下,很少会把.Net Core项目部署至Windows服务中,特别是Asp.net Core就更少了.一般情况下,Asp.net Core会部署 ...
- NSSM把.Net Core部署至 Windows 服务
NSSM把.Net Core部署至 Windows 服务 https://www.cnblogs.com/emrys5/p/nssm-netcore.html 为什么部署至Windows Servic ...
- net core 部署到windows 服务
NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行.同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大.它的特点如下: 支持普通 ...
- NET Core 部署到 Windows服务
https://www.cnblogs.com/linezero/p/5159927.html https://www.cnblogs.com/emrys5/p/nssm-netcore.html h ...
- .net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务
Cygwin工具编译Redis Redis6.x版本是未编译版本(官方很调皮,所以没办法,咱只好帮他们编译一下了),所以咱们先下载一个Cygwin,用它来对Redis进行编译. Cygwin下载地址: ...
- asp.net core 托管到windows服务,并用iis做反向代理
使用NSSM把.Net Core部署至 Windows 服务 为什么部署至Windows Services 在很多情况下,很少会把.Net Core项目部署至Windows服务中,特别是Asp.n ...
- .NET Core Generic Host Windows服务部署使用Topshelf
此文源于前公司在迁移项目到.NET Core的过程中,希望使用Generic Host来管理定时任务程序时,没法部署到Windows服务的问题,而且官方也没给出解决方案,只能关注一下官方issue # ...
- 利用Topshelf把.NET Core Generic Host管理的应用程序部署为Windows服务
背景 2019第一篇文章. 此文源于前公司在迁移项目到.NET Core的过程中,希望使用Generic Host来管理定时任务程序时,没法部署到Windows服务的问题,而且官方也没给出解决方案,只 ...
- .net core 部署到windows上的方法与 系统中相关问题的解决
前言 Net core 项目部门在Windows有很多种方式,大致有以下几种, dotnet 命令, iis(windowshosts), 一些开源的应用容器(docker ) 基于一些exe 程序, ...
随机推荐
- Windows下搭建RabbitMQ环境
1.下载安装Erlang 下载地址:https://www.erlang.org/downloads 下载之后,正常安装即可. 安装完毕之后,开始栏里会有个这图标: 2.下载安装RabbitMQ 下载 ...
- Gym101630A Archery Tournament
题目链接:https://vjudge.net/problem/Gym-101630A 题目大意: 有\(n\)个操作,每次输入\(t\) \(x\) \(y\)\((t=1,2; -10^9 \le ...
- Pyqt5_QWidget
QWidget常用方法: Qwidget.size()#获得客户区的大小 QWidget.width().QWidget.height()#获得客户区的宽度与高度 #设置不可以变宽.高 QWidget ...
- MySQL事务锁等待超时 Lock wait timeout exceeded; try restarting transaction
工作中处理定时任务分发消息时出现的问题,在查找并解决问题的时候,将相关的问题博客收集整理,在此记录下,以便之后再遇到相同的问题,方便查阅. 问题场景 问题出现的场景: 在消息队列处理消息时,同一事务内 ...
- Ant Design of Vue 组件库的使用
文档里面很清楚 安装步骤 这是全部引入的 1 有的组价涉及到汉化的问题 import moment from 'moment' import '../../../../node_modules ...
- 允许远程用户登录访问mysql
方法1.本地登入mysql,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,将”localhost”改为”%” mysql -u root -proot use mysql; ...
- 「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !
本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指南」一份涵盖大 ...
- liunx tar 详解
tar [-cxtzjvfpPN] 文件与目录 .... 参数说明 -c: 建立一个压缩文件的指令参数 (crate的缩写): -x:解开一个压缩文件的参数指令: -t:查看tarfile里面的文件 ...
- 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群 部署 dashboard 2.x
1. 部署dashboard 2.x版本 Dashboard 分为 1.x版本 和 2.x版本, k8s 使用的是1.18.2 故部署2.x版本的 # dashboard 2.x版本的部署 # 上传d ...
- Hadoop Yarn REST API未授权漏洞利用
Hadoop Yarn REST API未授权漏洞利用 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一 ...