AspNetCore linux下运行
前 言
首先找一台linux服务器。我是自己99元抢购的一台腾讯云服务器,使用云服务器有个好处,就是省去了自己安装的麻烦,即时释放,即时安装,作为测试机还是很方便的。
接着找一个可以远程登录linux服务器的ssh登录工具。借用前辈的对比说明。点这里 如下图所示:
各位可以自行下载对应的工具。
接下来安装donet运行环境。打开打开https://dotnet.microsoft.com/download网址,找到对应的
linux页签。
点击Install NETCore 按钮弹出对于的https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-package-manager-ubuntu-1910 这个页面,选择对于的OS版本
上面说的很清楚,如果开发使用安装SDK,如果运行使用,安装运行时。
第一步,添加 Microsoft 存储库密钥和源
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
第二步,安装 .NET Core SDK或者安装 ASP.NET Core 运行时
sudo yum install dotnet-sdk-3.1
sudo yum install aspnetcore-runtime-3.1
备注:安装 .NET Core 运行时
sudo yum install dotnet-runtime-3.1
查看命令
dotnet --list-sdks 和 dotnet --list-runtimes
dotnet --info
这是我安装的
实 践
我们需要把我们发布好的程序部署到我们刚才的服务器中。
建议上传到/var目录/var/www/dotnet,上传到root目录需要访问权限。
然后在linux中切换到.net目录上,cd /var/www/dotnet,然后运行dotnet xxxx.dll
出现以上画面,你就成功了,如果有误,你先在你本地window下dotnet xxx.dll看看有没有错误,一般在你本地上没问题,在服务器也是没问题的。
对了,第一次运行时还出现什么XML的提示,不太懂,第二次运行就没有了。
请注意,现在外网还不能访问你的5000端口的,为什么?
第一,看我上面的listening on http://localhost:5000,我这个dotnet默认只监听本地的5000端口,所以外网无法访问,解决方法就是在命令后面加上参数urls
dotnet xxxx.dll --urls http://*:5000
第二 Centos的防火墙默认是开启的,所以端口还得把防火墙关了,或在防火墙里添加个端口
//以下操作二选一
systemctl status firewalld // 查看防火墙状态 systemctl stop firewalld //关闭防火墙 firewall-cmd --zone=public --add-port=5000/tcp --permanent // permanent参数是永远存在,不然的话,重启后就没有了
firewall-cmd --reload // 重启防火墙 ,添加端口后记得执行此命令
一般来说,现在就你可以通过外网地址加5000的端口访问你的网站了。
另外就是安装nginx,做反向代理。到指定端口,这个网上一大堆资料。就不多说了。