前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践

Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践

作者头像
hbbliyong
发布2018-12-27 15:49:11
1.6K0
发布2018-12-27 15:49:11
举报
文章被收录于专栏:hbbliyonghbbliyong

环境

  • 本地 win7
  • 服务器:Virtual Box 上的Centos
  • ssh工具: Xshell
  • 文件传输: xftp

1.在本地创建asp.net core应用发布

1.1 使用Vs2017 新建一个asp.netcore项目

步骤略(一路next),当然你也可以用命令行创建。

1.2 发布项目

在项目路径下执行命令

代码语言:javascript
复制
dotnet publish –c release

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

2.安装netcore SDK

2.1 环境准备

我这里是在VirtualBox上安装的Centos.

  1. 需要首先记录一点,就是虚拟机最小化安装CentOS 7 默认没有启动网络配置,所以是不能上网的。

接下来就通过vi命令编辑网卡配置文件ifcfg-enp0s3(其他版本名称可能略有不同,但路径一致)。具体命令如下

代码语言:javascript
复制
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

将ONBOOT=no改为ONBOOT=yes,设置随系统开机运行。然后:wq强制保存并退出编辑文件即可。

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

代码语言:javascript
复制
service network restart

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

  1. 最小化安装同样没有ifconfig等网络命令,这里为了方便可以安装net-tools工具包
代码语言:javascript
复制
yum update
yum install net-tools

2.2 安装.NET Core SDK

2.2.1 安装libicu依赖
代码语言:javascript
复制
yum install libunwind libicu
2.2.2 注册dotnet 的repository

您需要注册Microsoft签名密钥并添加Microsoft产品提要

代码语言:javascript
复制
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
2.2.3 安装
代码语言:javascript
复制
sudo yum update
sudo yum install dotnet-sdk-2.2
2.2.4 安装完成
代码语言:javascript
复制
dotnet --info

微软官方参考 参考1

2.2.5 发布程序测试
  1. 这里先将刚开始发布的程序通过xftp传输到centos服务器上,进入程序文件夹。运行程序
代码语言:javascript
复制
dotnet MyApp.dll

但是报错了,如下图

这里说明一下:因为本地使用的sdk2.1,所以我没选最高版本,而是yum search dotnet-sdk,选的是显示的2.1的最高版本,也就是dotnet-skd-2.1.4。

以为是服务端的sdk版本太,但是通过dotnet --info查看本地版本,如下图:

服务端如下:

显然是服务器端安装的版本太低了。所以重新安装了2.2版本,

然后再运行 显示运行成功。这里耽误了好一会时间。

  1. 测试
代码语言:javascript
复制
curl http://locahost:5000/api/values

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

代码语言:javascript
复制
curl http://10.100.15.17:5000/api/values

也是不通,最后才发现,原来默认是无法通过ip访问。(有大神知道原因可以知道一下) 然后关闭重新启动,加上url参数

代码语言:javascript
复制
dotnet MyApp.dll --server.urls="http://*:5000"

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 1.在本地创建asp.net core应用发布
    • 1.1 使用Vs2017 新建一个asp.netcore项目
      • 1.2 发布项目
      • 2.安装netcore SDK
        • 2.1 环境准备
          • 2.2 安装.NET Core SDK
            • 2.2.1 安装libicu依赖
            • 2.2.2 注册dotnet 的repository
            • 2.2.3 安装
            • 2.2.4 安装完成
            • 2.2.5 发布程序测试
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档