CentOS安装使用.netcore极简教程(免费提供学习服务器)
本文目标是指引从未使用过Linux的.Neter,如何在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,预计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()
{
Log = XTrace.Log,
EncoderLog = XTrace.Log,
StatPeriod =
}; 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.
CentOS安装使用.netcore极简教程(免费提供学习服务器)的更多相关文章
- Asky极简教程:零基础1小时学编程,已更新前8节
Asky极简架构 开源Asky极简架构.超轻量级.高并发.水平扩展.微服务架构 <Asky极简教程:零基础1小时学编程>开源教程 零基础入门,从零开始全程演示,如何开发一个大型互联网系统, ...
- Nginx 极简教程(快速入门)
作者:dunwu github.com/dunwu/nginx-tutorial 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容聚合 4. ...
- nginx极简教程
Nginx 极简教程 本项目是一个 Nginx 极简教程,目的在于帮助新手快速入门 Nginx. examples 目录中的示例模拟了工作中的一些常用实战场景,并且都可以通过脚本一键式启动,让您可以快 ...
- 自制 os 极简教程1:写一个操作系统有多难
为什么叫极简教程呢?听我慢慢说 不知道正在阅读本文的你,是否是因为想自己动手写一个操作系统.我觉得可能每个程序员都有个操作系统梦,或许是想亲自动手写出来一个,或许是想彻底吃透操作系统的知识.不论是为了 ...
- Typora极简教程
Typora极简教程 ” Markdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber).它允许人们 “使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档.” ...
- Python 极简教程(八)字符串 str
由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...
- 【转】Typora极简教程
Typora极简教程 Typora download ” Markdown 是一种轻量级标记语言,创始人是约翰·格鲁伯(John Gruber).它允许人们 “使用易读易写的纯文本格式编写文档,然后转 ...
- NodeJS 极简教程 <1> NodeJS 特点 & 使用场景
NodeJS 极简教程 <1> NodeJS 特点 & 使用场景 田浩 因为看开了所以才去较劲儿. 1. NodeJS是什么 1.1 Node.js is a JavaScri ...
- python极简教程04:进程和线程
测试奇谭,BUG不见. 大家好,我是谭叔. 这一场,主讲python的进程和线程. 目的:掌握初学必须的进程和线程知识. 进程和线程的区别和联系 终于开始加深难度,来到进程和线程的知识点~ 单就这两个 ...
随机推荐
- vim编辑器中没有高亮显示,退格键不能使用的问题
在~/.vimrc下添加如下内容,立即生效
- tensorflow学习之(十一)RNN+LSTM神经网络的构造
#RNN 循环神经网络 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data tf.se ...
- unity渲染路径
(1) deferred shading:有最佳的光照和阴影效果,在场景中存在许多的实时光照时,使用deferred shading也是最佳的方案,之所以叫做deferred(延迟),是因为 ...
- 两条比较实用的mysql导入导出命令
开发lamp程序,对mysql数据库的导入导出是经常的事情,我就遇到这个问题,不能很方便的将数据库导入导出.今天整理了两条比较实用的命令,轻松搞定导入导出问题. 首先是导出命令 1.导出数据库 mys ...
- Promise注意点
一. Promise API 概述 var p = new Promise( function(resolve,reject){ // resolve(..) 用于决议 / 完成这个 promise ...
- Django模板继承和引用
一.模板继承 1.模板继承可以在创建一个基本“骨架”后,被其它子模板继承并覆盖,通过修改基础模板可以修改子模板中的所有框架 2.在模板teacher文件夹下创建基础模板 {% block xxx}与{ ...
- Ramnit 蠕虫分析
0x00前言 Ramnit 蠕虫是一种通过可移动驱动器传播的蠕虫.该蠕虫还可以作为后门,允许远程攻击者访问受感染的计算机,通常会寄生在用户的浏览器中,难以察觉,因此每天都有数以万计的用户受其困扰. 分 ...
- 无知小子踏入python web大门
学习python flask的第一天,费劲我小白的脑子,总算完成了环境配置 详情如下,其他小白误走弯路,希望和我一样爱好python的人坚信:python或许是最好的语言! 那么,开始喽,有不对的地方 ...
- tensorflow安装过程cpu版-(windows10环境下)---亲试可行方案
tensorflow安装过程cpu版-(windows10环境下)---亲试可行方案 一, 前言:本次安装tensorflow是基于Python的,安装Python的过程不做说明 二, 安装环境: ...
- MySQL9:索引实战
索引 无论是面试,还是实际工作中,对于一个Java程序员来说,数据库优化是避不开的一个技术点,关于数据库的优化,在性能达不到要求的情况下,我大致给出以下几个方向: (1)优化表结构,对常用字段和非常用 ...