尝试了下.net6在信创环境下的安装和部署
信创服务器,cpu:arm64,操作系统:中标麒麟 v10,网络环境:政务网(无法连接外网)
1、下载 .net 6 sdk 6.0.408 arm64二进制文件。https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0
2、在服务器/home目录下创建两个新目录 ,test 和 dotnet;
3、上传压缩包到服务器 /home/test,可通过堡垒机sftp上传;
4、进入/home/test目录,执行:tar zxf dotnet-sdk-6.0.408-linux-x64.tar.gz -c /home/dotnet,将文件解压至 /home/dotnet 目录;
5、设置环境变量, 编辑/etc/profile增加以下两行:
export dotnet_root=/home/dotnet
export path=$path:/home/dotnet
用不习惯vim,可以把文件下载到电脑上用记事本编辑。
6、查看安装情况,执行:source /etc/profile 重新加载配置文件。
7、执行: dotnet --info 查看.net安装情况。出现下图则说明安装配置成功。
8、使用vs新建一个asp.net core webapi项目(项目名为:kytest),项目会自动生成一个包含天气预报api接口,不用修改直接创建运行就行。修改appsettings.json配置文件指定端口(服务器只开了80-90端口,所以要把默认的5000端口改成86端口)。
{ "logging": { "loglevel": { "default": "information", "microsoft.aspnetcore": "warning" } }, "allowedhosts": "*", "kestrel": { "endpoints": { "http": { "url": "http://*:86" } } } }
9、正常发布,目标运行时选:linux-arm64。
10、到服务器的/home目录下新建个 wwwroot目录,把发布目标位置文件夹下的所有文件上传到wwwroot目录。
11、进入wwwroot目录,执行 dotnet kytest.dll,出现如下画面说明运行正常。
12、用浏览器访问http://xx.xx.xx.xx:86/weatherforecast,能正常返回接口数据且每次刷新页面数据会随机变动说明发布成功。
关于防火墙设置:
如发现在服务器上可以通过 curl http://localhost:86/weatherforecast 正常访问接口但通过浏览器无法访问,请检查防火墙设置。
查看状态:systemctl status firewalld 查看防火墙状态 ,显示active(running)说明防火墙已开启。
端口开放情况查询:firewall-cmd --list-all 可查看全部已开放端口。
查询单个端口:fireewall-cmd -query-port=[端口]/tcp,查看指定端口是否开放,yes为已开放,no为未开放
开放端口:firewall-cmd --permanent --add-port=[端口]/tcp ,执行后返回success。
添加完端口后重启防火墙让设置生效:systemctl restart firewalld