环境文化建设方案网站,室内设计公司理念,手机网站欢迎页面,网站后台密码错误我们要想在linux系统中运行asp.net core程序#xff0c;有两种方式#xff1a;
直接部署在linux系统中通过docker镜像部署在linux系统中
今天就来看下#xff0c;如何直接把asp.net core应用站点部署到CentOS中#xff01;
安装.NET Core SDK
添加微软包地址到rpm…我们要想在linux系统中运行asp.net core程序有两种方式
直接部署在linux系统中通过docker镜像部署在linux系统中
今天就来看下如何直接把asp.net core应用站点部署到CentOS中
安装.NET Core SDK
添加微软包地址到rpm安装升级RPM包
#其中i表示安装v表示显示安装过程h表示显示进度U是表示升级包rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
更新rpm包
rpm update 检查net core版本更新完以后默认会安装最新版的NET Core SDK,可以通过以下命令查看版本
dotnet --info
手动安装.net core sdk
yum install dotnet-sdk-3.1 发布asp.net core到linux系统
asp.net core程序发布到本地文件夹
通过visual studio 发布菜单将asp.net core应用程序发布到本地应用程序文件夹。
选择linux x64环境前面已经安装了SDK建议直接框架依赖。
默认是保存到Release下的publish目录里面发布后可以直接点击链接导航到目标文件夹。
上传到linux系统
通过XShell将文件上传到CentOS中的/data/sites/yourapp目录下其中yourapp可以自己随便命名和创建。
//递归创建目录 -p 表示递归创建mkdir -p /data/sites/yourapp在XShell上点击新建传输直接将windows文件夹中的文件拖动到linux文件夹中即可。
如果上传不成功需要给文件夹设置权限
sudo mkdir -p /data/sites/yourapp
// 修改权限为当前登录用户否则无法上传
sudo chown -R 用户:用户组 /data启动应用程序
文件上传上去后我们进入的Linux系统中先切换目录到/data/sites/yourapp再通过dotnet yourapp.dll命令来启动应用程序。
# cd /data/sites/yourapp
//如果当前用户权限不足在前面加 sudu 提权
# dotnet yourapp.dll如果我们执行命名后提示如下界面表示服务启动成功
// 主机环境Production
Hosting environment: Production
// 根目录
Content root path: /data/sites/yourapp
// 侦听地址和端口
Now listening on: http://0.0.0.0:5100
// 提示关闭技巧CtrlC 可以关闭此主机
Application started. Press CtrlC to shut down.yourapp 可自行重命名成自己的应用程序启动文件名
将应用程序修改成常驻服务
前面通过命名启用站点的方式很容易被关闭只要控制台被关闭服务就会被关闭。而且运行在控制台模式下无法执行其它操作。
接下来我们把它修改成常驻服务
定位到文件夹 /etc/systemd/system输入命令
//创建dotnet寄宿服务配置文件kestrel-dotnet.service并进入编辑状态
sudo vi kestrel-dotnet.service// 按 i 将编辑器转换为输入模式
// 将以下内容 copy 到当前编辑器中
[Unit]
DescriptionExample .NET Web Site running on Centos[Service]
WorkingDirectory/data/sites/yourapp
ExecStart/usr/bin/dotnet yourapp.dll
Restartalways
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec10
KillSignalSIGINT
SyslogIdentifierdotnet-example
Userroot
EnvironmentASPNETCORE_ENVIRONMENTProduction
EnvironmentDOTNET_PRINT_TELEMETRY_MESSAGEfalse[Install]
WantedBymulti-user.target// 按 esc 键推出编辑模式输入命令 :wq! 保存并退出
执行以上命令后我们还需要注册和启动服务
// 注册服务
sudo systemctl enable kestrel-dotnet.service
// 启动服务
sudo systemctl start kestrel-dotnet.service以上命令执行完成后我们就完成了常驻服务了。
这个时候我们可以用浏览器打开我们刚部署的站点如http://192.168.1.110:5100。
如果可以正常访问就表示部署完成了。如果不能正常访问我们可以通过以下几种方式来判断服务是否正常。
外部浏览器无法访问服务排查方法
查看服务是否正在运行
//服务未启动外部肯定无法访问服务器需要查看服务是否在线
//通过以下命令查看kestrel-dotnet.service是否存在,如果不存在则重启服务
//查看kestrel-dotnet.service是否存在# systemctl | grep running//如果不存在启动服务
# systemctl start kestrel-dotnet.service
查看端口是否正在监听
//如果服务存在但是应用程序监听错误也会导致外部无法访问
//查看本机的监听端口是否正常开启如果没有正常开启检查站点服务是否启动异常
# netstat -nao
查看本地是否可访问
//先排查本机服务是否能正常访问如果本机能正常访问表示本地服务正常。那就需要从其它因素考虑原因。
//尝试请求服务如果有响应表示服务正常
# curl http://192.168.1.110:5100
查看端口是否添加到防火墙白名单
//如果端口没有对外暴露外部应用程序是无法访问的。这种情况就是本机能正常访问而外部无法访问很常见的因素
//检查防火墙对外暴露端口是否包含自己部署的应用程序端口号
# firewall-cmd --zonepublic --list-ports
//添加端口到白名单
# firewall-cmd --add-port5100/tcp
//添加成功后再重新访问查看请求是否正常以上就是将asp.net core部署到linux系统中的过程我们终于可以真正体验跨平台的乐趣了。