Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践
原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践
环境
- 本地 win7
- 服务器:Virtual Box 上的Centos
- ssh工具: Xshell
- 文件传输: xftp
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.dll
但是报错了,如下图

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

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

服务端如下:

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

然后再运行
显示运行成功。这里耽误了好一会时间。
- 测试
curl http://locahost:5000/api/values
可以正常获取信息了
但是远程浏览器访问,无法访问。这就怪了,为啥呢?
服务器上用ip地址访问:
curl http://10.100.15.17:5000/api/values

也是不通,最后才发现,原来默认是无法通过ip访问。(有大神知道原因可以知道一下)
然后关闭重新启动,加上url参数
dotnet MyApp.dll --server.urls="http://*:5000"

此时再通过IP访问,OK通过。
本地浏览器访问,OK也通过。
好了这里就可以正常使用,当然测试没问题了,生产绝对不能这样搞。下边还要使用nginx,以及守护程序之类的。
Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践的更多相关文章
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)
Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一)
环境 本地 win7 服务器:Virtual Box 上的Centos ssh工具: Xshell 文件传输: xftp 1.在本地创建asp.net core应用发布 1.1 使用Vs2017 新建 ...
- ASP.NET 程序发布详细过程
前言 ASP.NET网站的发布,无论是初学者还是高手,在程序的发布过程中或多或少会存在一些问题,譬如VS发布ASP.NET程序失败.IIS安装失败.IIS发布失败.局域网内不能访问 配置文件错误.权限 ...
- 【ASP.NET MVC系列】浅谈ASP.NET 程序发布过程
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- asp.net程序发布详解
本文转载自Alan_beijing的博客ASP.NET 程序发布详细过程.内容进行了部分更改. ASP.NET网站的发布,无论是初学者还是高手,在程序的发布过程中或多或少会存在一些问题,譬如VS发布A ...
- .NetCore程序发布到IIS上面
一.概述 在传统的.NET Framework中,ASP.NET程序发布到IIS上面,是由IIS的工作进程(w3wp.exe)托管的,在任务管理器中可以找到该进程.在ASP.NET Core程序中不再 ...
- [转]Centos 7 安装部署 GitLab 服务器
Centos 7 安装部署 GitLab 服务器 转自:https://www.jianshu.com/p/79bfded68899 文前说明 作为码农中的一员,需要不断的学习,我工作之余将一些分析总 ...
- 一、CentOS 7安装部署GitLab服务器
一.CentOS 7安装部署GitLab服务器 1.安装依赖软件 yum -y install policycoreutils policycoreutils-python openssh-serve ...
- MySQL 5.7安装(多实例)最佳实践
MySQL 5.7安装(多实例)最佳实践,接上一篇<MySQL 5.7安装最佳实践>在已有的实例上面新增一个实例,主要是为了资源合理利用:下面是具体的步骤: 1.新实例目录规划,my.cn ...
随机推荐
- 把git仓库从码云迁到github,及git常用命令
前言 刚开始建仓库的时候,因为网络的原因选择了国内的码云.后来又想换成github,毕竟平时github使用率比较高. 替换远程仓库地址方式如下: git remote set-url origin ...
- SQL Server 2008 Tempdb 数据库迁移
1.首先检查数据文件位置及名称 SELECT name,physical_name FROM sys.database_files 2.迁移 USE master; GO ALTER DATABASE ...
- Mac 环境下svn服务器的配置
Mac 环境下svn服务器的配置 本文目录 • 一.创建代码仓库,用来存储客户端所上传的代码 • 二.配置svn的用户权限 • 三.使用svn客户端功能 在Windows环境中,我们一般使用Torto ...
- js cookie可选参数(document.cookie='name=张三;expires='+day;)
js cookie可选参数(document.cookie='name=张三;expires='+day;) 一.总结 1.可用secure属性来设置安全协议传输 2.expire属性用的比较多,其它 ...
- [慕课笔记]mongodb入门篇
一:对mongodb有一个系统的完备的了解,只有概念清楚了,才能更好的使用 二:学会mongodb数据库的搭建 首先:了解如何部署数据库的服务 搭建简单的单机服务到搭建具有冗余容错功能的复制集再到搭建 ...
- iOS进阶路线以及进阶书籍
第一,熟悉ARC机制:首先要了解ARC的前世今生.假设了解不清楚会导致两种可能,1,一个对象的引用莫名奇异为空.或失效了.这个一般都能在开发阶段及时发现,由于会导致应用异常.2.导致内存溢出:不了解A ...
- stm32的DMA传输一半中断
这里本想做一个录音程序 硬件很简单: MIC(麦克风)放大滤波电路---->stm32的ADC----->DMA通道----->一个数组缓存------->通过FATFS的 ...
- php 微信支付企业付款
1.所需参数 字段名 变量名 必填 示例值 类型 描述 公众账号appid mch_appid 是 wx8888888888888888 String 公众号的appId 商户号 mchid 是 19 ...
- AngularJS之ng-options指令
1.基本下拉效果(lable for value in array) 其中select标签中的ng-model属性必须有,其值为选中的对象或属性值. <div ng-controller=&qu ...
- Objective-C中 ==、isEqual、isEqualToString判断字符串相等
图片发自简书App 在判断一个字符串类型的变量是否与某字符时相等,你可能写下这样一行代码 if (activityType == @"0"){} //activityType是某一 ...