前言
Windows中Net核心项目部的方式有很多,包括以下几种:
Dotnet命令、iis(windowshosts)、一些开源应用程序容器(docker)都是基于一些exe程序,case Nssm在微软官网上搭建windows服务。这里将不描述优点和缺点的比较。今天,我在windows服务上构建了它。这种方式对于我们现有的dotnet来说是比较美观的(一个黑盒,一个不可见),重启时电脑可以自动重启。
1.实现
1.1.下载nssm
http://www.nssm.cc/,官网,下载地址http://www.nssm.cc/download
1.2.构建windows服务
找到文件夹下创建的Install.bat,点击运行,弹出操作表单。
安装内容:
% ~ d0cd % ~ dp0nssm安装npsweboreservicepause
路径:选择运行bat-c : NPS core web 1 run . bat的系统。
由于我们系统中的特殊处理,ps:直接实现了bat。填写C: 程序文件 dotnet dotnet.exe正常。因为我想执行dotnet命令,所以我实际上在bat中执行这些操作。
启动目录:bat所在的目录无需更改;
ps:发布项目文件夹的地址。
参数:为空;
Ps:项目运行dll:
服务名:我在install.bat批处理中写的,不要改,因为我在代码中重启服务的时候写死了。
Ps:只需创建管线名称,即windows服务名称。
然后单击安装服务按钮完成部署。
注意:红色字体是一般的处理方式,非红色字体是我们系统中的处理方式
启动服务
让输入后的网站可以访问
3.Nssm
3.1.输入nssm以了解其命令行
3.2 http://www.nssm.cc/usage,官方网站
4.我们系统问题的解决方案
4.1.日志问题,nssm中的路径文件运行bat,不运行dotnet.exe。Log4Net配置问题。
4.2.Office转换pdf问题,windows servers 2008服务器缺少com组件和windows。我在程序中添加了相关代码。如果您没有权限,请手动创建它们(服务器2008 r2,2016将在2016年创建)
系统无法访问文件“d: 奔驰戴姆勒奔驰. win lshbizplanconfiguration . xls”。runtime . interopservices.comexception(0x 800 a03 EC)3360 Microsoft office excel。有:个可能的原因
?文件名或路径不存在。该文件正被另一个程序使用。您要保存的工作簿与当前打开的工作簿同名。
我对这个问题的出现感到困惑。
解决方案也很混乱
这个解决方案是.
?Windows 2008 Server x64请创建此文件夹。
c : Windows syswow 64 config system profile Desktop
?Windows 2008服务器x86
请制作这个文件夹。
C: Windows System32 配置系统配置文件桌面
.而不是dcomcnfg.exe。
这个操作消除了我系统中的办公自动化问题。
在系统配置文件文件夹中,似乎需要一个桌面文件夹来打开Excel文件。
它从Windows2008中消失了,Windows2003有这个文件夹,我认为是它导致了这个错误。
也就是说,在c : windows system32 config system profile和c : windows syswow 64 config system profile下创建一个名为Desktop的目录来解决这个问题
这个方法真的解决了我的问题
4.3.重新启动数据库备份服务。相反,请重新启动windows服务,因此请使用上面的install.bat运行它。不要更改服务名称。
重启服务代码:
请尝试{ service controller service=new service controller(' npsweboreservice ');if(服务。状态==ServiceControllerStatus。正在运行){服务。stop();服务。等待状态。已停止);}服务。start();服务。等待状态。跑步);} catch(异常){} 4.4。netcore web应该是基于mysql服务问题,重启服务器时要担心mysql和windows服务的启动顺序。我在启动bat的时候是如何判断mysql服务是否启动的?
Bat含量:
@ echo offset local enabledexpansionrem关闭自动输出: begin for/f ' skip=3 tokens=4 ' % % I in(' sc query MySQL ')do set ' ZT=% % I ' goto : next 3360 next if/I ' % ZT % '=' running ' Else(net start MySQL 80 echo已发现服务正在运行1。)rem接收从rem输出echo starts NPSWEBCoreToTNET获得的输入信息。/NPS WebCore。回应开始结束退出摘要
以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。谢谢你的支持。