本文旨在指导从未接触过linux的.net开发者,如何在centos7上安装.net core环境,并部署.net core应用程序。
本指南仅适用于centos,其他Linux发行版的命令可能需要稍作调整。
在开始之前,请确保已准备好服务器地址、用户名和密码。如果您没有Linux系统,可以使用新生命团队提供的公网服务器centos.newlifex.com。
新生命团队的netcore服务器免费开放计划
一、准备工作
在Windows开发机上安装xshell和xftp,前者用于通过ssh连接Linux服务器,后者用于FTP文件传输。
打开xshell,创建一个新连接,名称和主机都填写centos.newlifex.com(实际使用时应替换为您的Linux服务器地址或域名),其他选项保持默认,如下:
点击连接后,会弹出SSH安全警告,您需要接受并保存SSH密钥。
接受后,系统会要求输入用户名,这里我们输入root,并选择记住用户名。
然后输入密码,新生命团队开放服务器本周的密码是nx@1250407685。
为了方便,我们同样选择记住密码。
连接成功后,您可以在左侧会话管理器中看到刚才创建的连接,这在管理多个Linux服务器时非常方便。
我们可以尝试一些可能用到的命令:
使用w命令查看当前连接到服务器的用户。下图显示只有我自己连接。
使用free -h命令查看服务器内存使用情况。下图显示已使用内存119M,Linux在这方面表现非常出色。
使用top命令查看系统进程资源占用情况,类似于Windows任务管理器,定时刷新,按Q键退出。
共63个进程,只有1个在运行,系统非常干净。不过下方看到有一个Java进程,后续我们会处理掉它。
使用ps aux命令查看进程详细信息。
我们发现那个java进程来自cloudmonitor,应该是云监控服务。
二、安装环境
我们是为了.NET Core而来,主要任务是安装运行时环境。
为了方便和一劳永逸,我们采取快捷方式,先看看我的配置:
打开xshell的快速命令工具栏,然后添加几组快捷命令:
按钮“.Net Core”(注意:最后一行命令后面必须有一个换行,否则最后命令无法得到执行,下同)
按钮“.Net Core SDK”
按钮“Asp.Net Core”
按钮“卸载.Net Core”
具体功能就不介绍了,来源于:https://www.php.cn/link/9d88196d9b43925ec4093e0228fd7803
我们尝试第一个按钮,安装.NET Core运行时,不包括ASP.NET Core和.NET Core SDK。
上图显示,已安装.NET Core运行时2.1.1。
您可以使用卸载按钮,然后再安装另外两个,看看有什么不同。
三、部署应用
使用visual studio 2017新建一个.NET Core控制台项目。
在NuGet中引用NewLife.Core,建立一个稍微高级一点的示例。
代码语言:JavaScript 代码运行次数:0
运行 复制 “`javascript Static void Main(String[] args) { XTrace.Useconsole(); var svr = new ApiServer(1234) { Log = XTrace.Log, EncoderLog = XTrace.Log, StatPeriod = 5 }; var ns = svr.EnsureCreate() as NetServer; ns.SocketLog = XTrace.Log; ns.SessionLog = XTrace.Log; ns.LogSend = true; ns.LogReceive = true; svr.Start(); Console.ReadKey(); } “`
如上,我们使用ApiServer建立一个rpc服务,并打开所有调试日志,它内置有两个服务接口,方便测试RPC通信。
编译并发布为可移植应用程序:
我们会得到一个包含dll文件和runtimeconfig.json文件的目录,这些是运行所必需的文件。
使用xshell连接到服务器,这里可以是centos.newlifex.com。
在xshell工具栏上有一个绿色图标,点击打开xftp,左窗口地址栏进入刚才的发布目录,右窗口新建/root/ApiServer目录,并将左边的必要文件拖到右边,即可实现上传!
回到xshell中,使用cd ApiServer进入目录,执行dotnet ConsoleApp5.dll即可运行应用程序(前提是已安装.NET Core运行时)。
客户端使用码神工具XCoder(https://www.php.cn/link/88275708422d0942423446f76b49e8fb Core应用程序已成功在CentOS上运行。
仅仅运行还不够,有时候我们还需要查看应用程序的工作日志。仍然使用xftp,刷新右侧窗口,可以看到多出了Log目录,这就是我们的应用程序日志,右键传输即可下载到本地,当然也可以简单直接地拖到左边。
使用vscode打开日志文件,可以看到非常详细的信息,特别是日志头部,有助于分析和查找问题。
四、总结
这篇面向Linux零基础的Windows工程师的极简教程终于写完了,基本上足以应对八成以上的日常工作。
其他更多细节,可以在网上找到,例如如何将应用程序安装为服务、如何实现开机启动等等。
综合过去20年编写代码的经验,.NET Core具有极强的优势,尽管存在一些小问题,但我必须说,只要微软不放弃,我坚决不放弃!
我是大石头,从1999年开始,19年的老码农。目前在快递行业从事数据分析架构工作,分析路上的上亿包裹。欢迎大家一起探索C#大数据!
End.