前言

Net core 项目部门在Windows有很多种方式,大致有以下几种,

  1. dotnet 命令,
  2. iis(windowshosts),
  3. 一些开源的应用容器(docker )
  4. 基于一些exe 程序,微软官网上案例
  5. 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上的方法与 系统中相关问题的解决的更多相关文章

  1. ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成

    ASP.NET Boilerplate 学习   1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...

  2. 使用NSSM把.Net Core部署至 Windows 服务

    为什么部署至Windows Services 在很多情况下,很少会把.Net Core项目部署至Windows服务中,特别是Asp.net Core就更少了.一般情况下,Asp.net Core会部署 ...

  3. NSSM把.Net Core部署至 Windows 服务

    NSSM把.Net Core部署至 Windows 服务 https://www.cnblogs.com/emrys5/p/nssm-netcore.html 为什么部署至Windows Servic ...

  4. PowerShell因为在此系统中禁止执行脚本解决方法

    PowerShell因为在此系统中禁止执行脚本解决方法   在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 " ...

  5. .net core 部署到windows服务上的方法

    前言 Net core 项目部门在Windows有很多种方式,大致有以下几种, dotnet 命令, iis(windowshosts), 一些开源的应用容器(docker ) 基于一些exe 程序, ...

  6. 同“窗”的较量:部署在 Windows 上的 .NET Core 版博客站点发布上线

    为了验证 docker swarm 在高并发下的性能问题,周一我们发布了使用 docker-compose 部署的 .net core 版博客站点(博文链接),但由于有1行代码请求后端 web api ...

  7. .net core部署在iis上

    部署在Windows Server 2008 R2上,一直安装失败,网上找的资料一直无法解决问题,后来找到了官方的文档, 原来是要安装sp1,大概2g左右,同时也要安装Microsoft Visual ...

  8. 一文讲通.NET Core部署到Windows IIS最全解决方案

    回顾之前的ASP.NET的经典托管 在经典ASP.NET应用程序中,所有一切都托管在IIS工作进程中(w3wp.exe),这也被称为IIS应用程序池.ASP.NET程序被托管在应用程序池中,并且被按照 ...

  9. 解决Activiti5.22流程图部署在Windows上正常,但在linux上部署后出现中文变方块的问题

    总结/朱季谦 楼主最近在做公司的工作流平台,发现一个很无语的事情,Activiti5.22的流程图在Windows环境上部署,是可以正常查看的,但发布到公司的Linux服务器上后,在上面进行流程图在线 ...

随机推荐

  1. JVM和GC的工作原理

    转载于https://uestc-dpz.github.io JVM Java 虚拟机 Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制.JVM ...

  2. 使用 OpenSSL 为 Nginx 创建自签名证书 并开启客户端身份验证

    本文章默认读者了解Openssl,CA,网站证书相关知识,直接实战!配置完成后,浏览器会显示"安全的HTTPS"连接.不会像其他文章那样,是红色警告的证书提示. 准备环境 笔者使用 ...

  3. 【Java例题】7.2 线程题2-随机数求和线程

    2.随机数求和线程.设计一个线程子类,产生10000个随机数,并求和,显示和的结果:然后编写主类,在主函数中定义一个线程对象,并启动这个线程. package chapter7; public cla ...

  4. CSS3 Flex 布局教程

    网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂 ...

  5. css常用代码块

    顶部固定导航栏 | css position: fixed; top: 0; left: 0; z-index: 9999; width: 100%; height: 48px; border-top ...

  6. 二.Google黑客语法

    搜索也是一门艺术! 说起Google,可谓是无人不知无人不晓,其强大的搜索功能,可以让你在瞬间找到你想要的一切.对于黑客而言,Google可是 一款绝佳的黑客工具.正因Google强大的检索能力,黑客 ...

  7. tk.mybatis扩展通用接口

    一.tk.mybatis已经为我们封装好了许多拆箱即用的通用mapper,但在实际的项目开发中想必不少小伙伴在数据库设计中都会采用逻辑删除这种方案,再去使用通用的mapper接口就不行了.这时候就需要 ...

  8. Vue的冒泡事件

    由于业务需求需要,需要在一个元素中的子元素添加一个点击事件. 但是刚好父元素也有一个点击事件.这个时候我们就需要使用到Vue中的阻止事件冒泡了.

  9. Eclipse导入spring-boot-plus(三)

    Eclipse导入spring-boot-plus 安装lombok插件 !!!请先确保Eclipse已安装lombok插件!!!

  10. copy and mutableCopy

    结论: 1, 深复制与浅复制 2,immutable和mutable 3,代码分析: #pragma mark - String - (void)stringCopyAndMutableCopy { ...