1.发布一个.net core(只安装了.Net Core运行时,而没有安装ASP.NET Core运行时,需要添加以下节点再发布)。

 <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>

2.在centOS7系统下安装.net core环境。

首先,安装libicu依赖

执行下方命令行

yum install libunwind libicu

第二步,Add the dotnet product feed

按照微软官网上的流程执行下面两行命令

  1. sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
  2. sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

第三步,Install the .NET SDK

执行下方命令行,时间较长

  1. sudo yum update
  2. sudo yum install libunwind libicu
  3. sudo yum install dotnet-sdk-2.0.2

第四步,安装完成

  输入 dotnet --info ,验证是否安装成功

3.下载WinSCP(https://winscp.net/eng/download.php)。

4.连接CentOS7。

5.通过winSCP,将发布好的文件复制到centOS文件下。

6.执行dll([root@用户名   项目发布的文件夹] dotnet 你的项目名称.dll)。

如图所示,发布成功。

7.安装nginx。

1.curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2.rpm -ivh nginx.rpm
3.yum install nginx
4.systemctl start nginx 启动服务
5.systemctl enable nginx 重置服务
6.systemctl start firewalld 开启防火墙
7.systemctl start firewalld.service 开启服务
8.systemctl restart firewalld 重启防火墙
9.vi /etc/nginx/conf.d/default.conf/ 修改nginx配置
替换内容为
 server {
  listen 80;
  location / {
  proxy_pass http://localhost:5000;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection keep-alive;
  proxy_set_header Host $host;
  proxy_cache_bypass $http_upgrade;
  }
} 10.nginx -s reload 重新生成
11.dotnet xxxx.dll 重新执行项目DLL

8.为了保持网站一直挂着,所以要安装一个守护进程服务(Supervisor)。

 安装

1.yum install python-setuptools
2.easy_install supervisor

配置

1.mkdir /etc/supervisor
2.echo_supervisord_conf > /etc/supervisor/supervisord.conf
3.cd /etc/supervisor/
4.vi supervisord.conf
5.将内容最后面的
;[include]
;files = relative/directory/*.ini
替换为
[include]
files = conf.d/*.ini
6.mkdir conf.d
7.cd conf.d
8.mkdir 项目名.ini
9.vi 项目名.ini
添加内容:
[program:项目名] command=dotnet 项目名.dll ; 运行程序的命令 directory=/tmp/app/Release/ ; 命令执行的目录 autorestart=true ; 程序意外退出是否自动重启 stderr_logfile=/var/log/项目名.err.log ; 错误日志文件 stdout_logfile=/var/log/项目名.out.log ; 输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量 user=root ; 进程执行的用户身份 stopsignal=INT 按ESC :wq!,退出。
10.supervisord -c /etc/supervisor/supervisord.conf
11.ps -ef | grep 项目名
12.supervisord reload

 

最终效果:

发布.net core Web到CentOS7的更多相关文章

  1. 这可能是最low的发布dotnet core站点到centos7

    前言 不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash..我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的. 正文 什么是.net core,bal ...

  2. 这可能是最low的发布dotnet core站点到centos7教程

    前言 不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash..我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的. 正文 什么是.net core,bal ...

  3. 自动发布.NET Core Web应用

    1 原因和目的 相信很多开发者都需要将自己的编写的应用进行编译并部署到服务器上,这个过程在个人或小型团队的项目中都是一个简单的事情.但是对于并行化开发而言,就需要通过工具来辅助这个过程.于是,我参考了 ...

  4. 详解Net Core Web Api项目与在NginX下发布

    前言 本文将介绍Net Core的一些基础知识和如何NginX下发布Net Core的WebApi项目. 测试环境 操作系统:windows 10 开发工具:visual studio 2019 框架 ...

  5. 循序渐进学.Net Core Web Api开发系列【7】:项目发布到CentOS7

    系列目录 循序渐进学.Net Core Web Api开发系列目录 本系列涉及到的源码下载地址:https://github.com/seabluescn/Blog_WebApi 一.概述 本篇讨论如 ...

  6. Docker 发布 Abp net core web 服务

    Docker 发布 Abp net core web 服务 准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是S ...

  7. List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac

    List多个字段标识过滤 class Program{  public static void Main(string[] args) { List<T> list = new List& ...

  8. 通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程

    最近一个项目中,为App开发后台接口,技术选型为最新 .net core版本,使用.net core开发web api接口过程中,为了方便app团队成员直接在线调用接口,找了公网上的一台服务器做为ap ...

  9. ASP.NET Core Web应用在发布时选择是否对视图进行编译

    原文:ASP.NET Core Web应用在发布时选择是否对视图进行编译 在我们发布ASP.NET Core Web应用程序时,选择以文件形式发布,发布方法选择文件系统 默认情况下,会把Views的视 ...

随机推荐

  1. 实验三 Linux系统用户管理及VIM配置

    项目 内容 这个作业属于哪个课程 班级课程的主页链接 这个作业的要求在哪里 作业要求链接接地址 学号-姓名 17041428-朱槐健 作业学习目标  1.学习Linux系统用户管理 2.学习vim使用 ...

  2. Redis学习笔记(十七) 集群(上)

    Redis集群是Redis提供的分布式数据库方案,集群通过分片来进行数据共享,并提供复制和故障转移操作. 一个Redis集群通常由多个节点组成,在刚开始的时候每个节点都是相互独立的,他们处于一个只包含 ...

  3. pytorch入门2.0构建回归模型初体验(数据生成)

    pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...

  4. Flink 如何分流数据

    场景 分流方式 如何分流 使用Filter分流 使用Split分流 使用Side Output分流 场景 获取流数据的时候,通常需要根据所需把流拆分出其他多个流,根据不同的流再去作相应的处理. 举个例 ...

  5. ThreadLocal源码解析-Java8

    目录 一.ThreadLocal介绍 1.1 ThreadLocal的功能 1.2 ThreadLocal使用示例 二.源码分析-ThreadLocal 2.1 ThreadLocal的类层级关系 2 ...

  6. TensorFlow从0到1之TensorFlow逻辑回归处理MNIST数据集(17)

    本节基于回归学习对 MNIST 数据集进行处理,但将添加一些 TensorBoard 总结以便更好地理解 MNIST 数据集. MNIST由https://www.tensorflow.org/get ...

  7. TypeError: this.xxx.substring is not a function的解决办法

    这是因为已经改变了xxx的值的类型,不再是字符串的话将不会拥有substring函数, 我当时这样写的时候,直接将number类型赋予了this.enter,所以导致了错误. 改为这样之后可以使用su ...

  8. Java中的map集合顺序如何与添加顺序一样

    一般使用map用的最多的就是hashmap,但是hashmap里面的元素是不按添加顺序的,那么除了使用hashmap外,还有什么map接口的实现类可以用呢? 这里有2个,treeMap和linkedH ...

  9. 使用本地shadow socks代理

    1,第一种方式 import urllib2 import socks from sockshandler import SocksiPyHandler opener = urllib2.build_ ...

  10. rust 学习之旅二,关键字和保留字

    当前,以下关键字具有所描述的功能. as-执行原始类型转换,消除包含项目的特定特征的歧义,或在useand extern crate语句中重命名项目async-返回a Future而不是阻塞当前线程a ...