直接命令行输入 dontnet,如果弹出的是下面的语句,说明没有安装dotnet环境
-bash: dotnet:command not found
通过下面命令来找有什么可以下载安装的环境
yum search dotnet
yum makecache
然后再查找dotnet运行时环境
如果查看的时候是下面这种情况
说明没有安装RPM包,可以尝试按照一下的步骤安装RPM包
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
sudo yum -y update
yum makecache
yum search all dotnet
根据上图可以发现有很多是.NET Core的安装运行时和sdk,因此我们要局限一些,只需要查找aspnetcore就可以了
yum search aspnetcore
安装需要的运行环境,我的项目是6.0的框架,因此,我安装7.0的运行时
yum install -y aspnetcore-runtime-7.0
等待一下系统运行安装完成,说明webapi的运行时环境已经部署到Linux服务器上了
为什么没有找到6.0的版本,我也没有弄清楚,知道的小伙伴可以留言,但是装7.0的版本也是可以的
dotnet WangZongTools.API.dll
皆大欢喜,说明运行环境和你项目框架一致,就可以的了。
需要找到项目的runtimeconfig.json文件,查看当前目录下所有的文件
ll
cat xxx.runtimeconfig.json
然后把Microsoft.NETCore.App的version修改成提示找到的version
打开文件
vi xxx.runtimeconfig.json
修改完后,按esc键保存,然后输入 :wq 退出编辑状态
在linux界面按 ctrl+c停止项目运行
重新指定ip地址和端口号启动
dotnet WangZongTools.API.dll --urls="http://*:8081"
如果是使用某里云的服务器的话,弹出“Cannot assign requested address”错误。说明你使用了公网IP,要切换成某里云的内网IP
使用在局域网内的其他机子使用 curl指令来访问我们部署好的网站
curl http://某里云公网IP/xxx/xxx
一般是防火墙的原因,可以尝试停掉防火墙,然后再去访问,仅仅测试使用,不建议关掉防火墙
关闭防火墙命令
systemctl stop firewalld
开启防火墙
systemctl start firewalld
因此,会出现你关闭编辑器后,api就无法访问了。如果需要长期使用的话,需要把项目在后台运行
可以使用以下命令来添加
nohup dotnet WangZongTools.API.dll --urls="http://*:8081" &
如果出现提示:
忽略输入并把输出追加到"nohup.out"
需要将标准输出内容重定向到文件
nohup dotnet WangZongTools.API.dll --urls="http://*:8081" > a.txt
出现提示:
nohup: 忽略输入重定向错误到标准输出端
将标准错误输出重定向到文件
nohup dotnet WangZongTools.API.dll --urls="http://192.168.x.x:8081" > a.txt 2>&1 &
在某里云里面的服务器,记得需要去开放端口号才可以访问噢