当前位置 主页 > 网站技术 > 代码类 >

    .net core部署到windows服务上的完整步骤

    栏目:代码类 时间:2019-10-08 06:03

    前言

    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都能创建)

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

    ? 文件名称或路径不存在。
    ? 文件正被其他程序使用。
    ? 您正要保存的工作簿与当前打开的工作簿同名。

    此问题的出现 我十分不解。

    解决方案 也十分疑惑

    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,