所在的位置: js >> js优势 >> 中年大叔学编程NetCoreWebA

中年大叔学编程NetCoreWebA

北京皮肤科的最好医院 http://pf.39.net/bdfyy/bjzkbdfyy/140802/4439528.html

相信很多朋友都知道.netcore可以跨平台,之前在Windows上,我一般是使用IIS或者直接一个exe运行,当然还可以做成Windows服务的方式,那么开发好的WebApi发布至Linux上后,我们怎么运行呢?

这里我直接通过VS提供的模版创建一个简单的demo,并无任何业务代码,可以直接发布,按惯例我还是用命令来发布我们的

dotnetpublish-rlinux-x64-cRelease-o./bin/output

现在直接将bin/output下面的文件上传到Linux服务器上,关于SSH工具的话,我一般用SSHSecureShell、FinalShell、MobaXterm这个三款工具,用得比较多的还是属MobaXterm了。上传之后,记得给文件给以相应的权限,这里我直接简单粗暴的用chmod-R目录,但是在执行./WebDemo的时候出现这个问题

在Github上有Howtouse.NETCoreonRHEL6/CentOS6和.NETCoreGlobalizationInvariantMode两篇文章中有提到几种方式:

下载安装ICU在项目文件中加入ItemGroupRuntimeHostConfigurationOptionInclude=System.Globalization.InvariantValue=true//ItemGroup

在runtimeconfig.json文件中加入{runtimeOptions:{configProperties:{System.Globalization.Invariant:true}}}

这里我们就用简单点的方式吧,直接项目文件中加入配置,

重新发布之后把会项目中的配置信息写到runtimeconfig.json中,

我只需要将该文件复制即可,现在我们来继续执行./WebDemo,可以看到能执行成功

由于这里绑定的是localhost,不能提供远程访问,所以我们使用curl命令来看看是否启动成功

直接通过./WebDemo的方式是前台运行,如果当前的SSH连接超时或者工具直接断开,那么程序就会自动退出,这里我们调整一下启动方式nohup./WebDemo

,这样一来,程序就是后台运行,即使SSH连接超时或者工具直接断开,进行依然在后台运行,以为这样就安全吗?虽然是后台运行,但是还是确保不了我们的程序能一直稳健运行,所以这里,我们可以借助PM2来实现进行守护,安装PM2之前需要先安装NodeJS,具体安装的方法请自行百度吧,我这里就直接通过执行npminstallpm2-g

命令来安装PM2,

这里我还是用FinalShell吧,现在我们来启动WebDemo

pm2start./WebDemo--nameWebApiDemo

启动后,我们可以看到我们名为WebApiDemo的应用在PM2的状态是

online,现在我们通过ps-ef

grepWebDemo去查找进程,然后杀掉,看看PM2的状态是什么样式的?

从图中,我们可以看到,最初的pid是,在执行kill命令后,PM2检测到进程挂掉后,为我们重新启动了一个进程,pid为,这样一来的话,我们的应用就不会莫名其妙的挂掉了,即使挂掉了,也能很快自动启动起来。关于更多的PM2

信息,大家可以去


转载请注明:http://www.aierlanlan.com/grrz/3098.html