Asp.Net Core程序发布部署到CentOS平台

1.在本地创建 asp.net core 应用发布
1.1 使用 Vs2017 新建一个 asp.netcore 项目
步骤略(一路 next),当然你也可以用命令行创建。

1.2 发布项目
在项目路径下执行命令

dotnet publish –c release
先本地运行是否有问题,减少因为本地程序造成发布不成功的几率。程序就简单介绍一下,下面部署是管件。

2.安装 netcore SDK
2.1 环境准备
我这里是在 VirtualBox 上安装的 Centos.

需要首先记录一点,就是虚拟机最小化安装 CentOS 7 默认没有启动网络配置,所以是不能上网的。
接下来就通过 vi 命令编辑网卡配置文件 ifcfg-enp0s3(其他版本名称可能略有不同,但路径一致)。具体命令如下

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
将 ONBOOT=no 改为 ONBOOT=yes,设置随系统开机运行。然后:wq 强制保存并退出编辑文件即可。

最后,需要重启一下网络服务。命令如下:

service network restart
然后 ping www.baidu.com 检查是否可以正常上网了。
这时就可以用 xshell 连接服务器。

最小化安装同样没有 ifconfig 等网络命令,这里为了方便可以安装 net-tools 工具包
yum update
yum install net-tools
2.2 安装.NET Core SDK
2.2.1 安装 libicu 依赖
yum install libunwind libicu
2.2.2 注册 dotnet 的 repository
您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
2.2.3 安装
sudo yum update
sudo yum install dotnet-sdk-2.2
2.2.4 安装完成
dotnet –info

2.2.5 发布程序测试
这里先将刚开始发布的程序通过 xftp 传输到 centos 服务器上,进入程序文件夹。运行程序
dotnet MyApp.Web.dll

可能会报错:

Asp.Net Core 程序发布部署到 CentOS 平台
这里说明一下:因为本地使用的 sdk2.1,所以我没选最高版本,而是 yum search dotnet-sdk,选的是显示的 2.1 的最高版本,也就是 dotnet-skd-2.1.4。

Asp.Net Core 程序发布部署到 CentOS 平台
以为是服务端的 sdk 版本太,但是通过 dotnet –info 查看本地版本,如下图:

Asp.Net Core 程序发布部署到 CentOS 平台
服务端如下:

Asp.Net Core 程序发布部署到 CentOS 平台
显然是服务器端安装的版本太低了。所以重新安装了 2.2 版本,

Asp.Net Core 程序发布部署到 CentOS 平台
然后再运行
显示运行成功。这里耽误了好一会时间。
2. 测试

curl http://locahost:5000/api/values
可以正常获取信息了
但是远程浏览器访问,无法访问。这就怪了,为啥呢?
服务器上用 ip 地址访问:

curl http://10.100.15.17:5000/api/values

Asp.Net Core 程序发布部署到 CentOS 平台
也是不通,最后才发现,原来默认是无法通过 ip 访问。(有大神知道原因可以知道一下)
然后关闭重新启动,加上 url 参数

dotnet MyApp.dll –server.urls=”http://*:5000″

Asp.Net Core 程序发布部署到 CentOS 平台

此时再通过 IP 访问,OK 通过。
本地浏览器访问,OK 也通过。

好了这里就可以正常使用,当然测试没问题了,生产绝对不能这样搞。下边还要使用 nginx,以及守护程序之类的。

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...