本文目标是指引从未使用过Linux的.Neter,如何在CentOS7上安装.Net Core环境,以及部署.Net Core应用。html
仅针对CentOS,其它Linux系统相似,命令环节稍加调整;java
须要提早准备好服务器地址、用户名、密码;linux
若是手上没有Linux系统,可以使用新生命团队免费提供的公网服务器 centos.newlifex.com git
在Windows开发机上安装 xshell 和 xftp ,前者用于SSH链接Linux服务器,后者用于FTP上传下载文件。github
打开xshell,新建链接,名称和主机都填 centos.newlifex.com ,(实际应用中就是你的Linux服务器地址或域名),其它默认,以下:shell
点击链接,弹出一个SSH安全警告,须要接受并保存SSH密钥。json
接受后要求输入用户名,咱们这里输入root,选择记住用户名centos
肯定后,要求输入密码,新生命团队开放服务器本周的密码是 nx@1250407685,预计2018-07-15后修改安全
为了省事,咱们一样选择记住密码。服务器
肯定后,咱们能够看到登陆成功!同时在左边会话管理器看到了刚才建立的这个链接,之后须要同时管理不少Linux服务器的时候,这样子就方便多了。
我来试试几个可能用获得的命令:
w 查看如今谁在链接这台服务器。下图看到只有我本身连着。
free -h 查看服务器内存使用状况。下图看到已用内存119M,Linux这点很是漂亮。
top 命令查看系统进程占用资源状况。相似于Windows任务管理器,定时刷新,按键Q退出。
共63个进程,只有1个在运行,挺干净。不过底下看到有个java进程,不太爽,后面想办法干掉它。
ps aux 查看进程详细信息。
这下子知道,那个java进程来自 cloudmonitor,应该是云监控。
咱们是奔着.Net Core而来的,重点是安装运行时环境。
为了方便和一劳永逸,咱们抄捷径,先看个人配置:
打开xshell的快速命令工具栏,而后添加几组快捷命令:
按钮“.Net Core”
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update -y
sudo yum install -y dotnet-runtime-2.1
dotnet --info
(注意:最后一行命令后面必须有一个换行,不然最后命令没法获得执行,下同)
按钮“.Net Core SDK”
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update -y
sudo yum install -y dotnet-sdk-2.1
dotnet --version
按钮“Asp.Net Core”
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum update -y
sudo yum install -y aspnetcore-runtime-2.1
dotnet --info
按钮“卸载.Net Core”
sudo yum remove -y aspnetcore-*
sudo yum remove -y dotnet-*
具体功能就不介绍了,来源于:https://www.microsoft.com/net/download/linux-package-manager/centos/sdk-current
咱们试试第一个按钮,安装.net core运行时,没有asp.net core,也没有.net core sdk
上图看到,安装了netcore运行时2.1.1
能够用卸载按钮,而后再装另外两个,看看有什么不一样。
用vs2017新建一个netcore控制台项目
Nuget引用 NewLife.Core ,创建一个稍微高级一点的例程
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 便可执行应用,(前提是已安装netcore运行时)
客户端用码神工具XCoder(https://github.com/NewLifeX/XCoder)链接地址 tcp://centos.newlifex.com:1234,选择 Api/All、Api/Info 两个服务接口均测试经过,代表咱们的.Net Core应用成功在CentOS上跑起来
做为后台进程运行:
nohup dotnet ConsoleApp5.dll &
光有运行还不够,有时候咱们还要查看应用工做日志。仍是用xftp,刚才右边的窗口刷新一下,能够看到多出来Log目录,就是咱们的应用日志,右键传输便可下载到本地,固然也能够简单直接的往左边拖过去。
vscode打开日志文件,能够看到很详细的信息,特别是日志头,便于分析查找问题
这一篇面向Linux零基础的Windows工程师的极简教程,终于写完了,基本上足以应付八成以上的平常工做。
其它更多细节,能够在网上找到,好比怎么样把应用安装成为服务、怎么样作到开机启动,等等。
我是大石头,打1999年起,19年老码农。目前在快递行业从事数据分析架构工做,分析跑在路上的上亿包裹。欢迎你们一块儿C#大数据!
End.