预备工作

1、删除dotnet core sdk

sudo yum erase libunwind libicu

2、删除链接

sudo rm -rf /usr/local/bin 

3、更新yum

sudo yum update

4、注册 Microsoft 签名密钥

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

5、添加 Microsoft 产品源(添加 Microsoft 产品源,不然就没有可用的包dotnet-sdk-2.0.0)

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'

上面的操作目的 1、从系统中删除 .NET Core 的所有旧预览版本。 2、要开始安装 .NET,您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要。每台机器只需要做一次

一、准备条件

1、系统CentOS 7.5

2、使用捷径操作-Linux面板6.8安装命令 (默认创建WWW站点目录)

或者

3、最终的一步 : 然后依次安装依赖库和dotnet core

sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.0.0  

我当前是7.3

上面是我7.5的时候成功过的

一、RPM方式

1、导入rpm源

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
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'

3、安装基础依赖

sudo yum -y install libunwind libicu

4、安装SDK

sudo yum -y install dotnet-sdk-2.0.0

测试是否安装成功      dotnet --info可以确认是否安装成功

二、操作步骤

1、找到宝塔为你的网站创建号的WWW站点目录然后你在里面创建一个存放Core项目的站点目录 比如(Pulish文件夹-意味发布)

(在顶级目录www/wwwroot    具体 1、cd  ../    2、ls查看是否有www目录     3、cd  www/wwwroot  4、mkdir Pulish -创建文件夹里面就是最终放入Core项目源码)

2、压缩Core项目源码为rar格式, Pulish.rar 上传到wwwroot 内(之前创建的Pulish文件夹就可以删除,直接解压就替换掉了)

3、运行命令: dotnet  FirstCoreWeb.dll

访问测试结果

# curl http://127.0.0.1:8001

现在我们需要转发  需要修改ngin新配置文件

location / {
proxy_pass http://localhost:8001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
}

重启 Nginx

输入ip地址即

如果是bt创建的站点,则需要在新创站的配置文件加入请求该监听端口的转发配置,然后重启Nginx

守护进程: 比如 dotnet xxx.dll 运行一个dotnetcore网站。你ctr+c 或者关闭命令窗口  dotnet进程就会被关闭掉  你无法访问网站。你就只能打开窗口一直放着,这样肯定有问题的。所以就用进程守护软件守护一下dotnet进程

(亲测:1、Vs2017  写的程序不需要,Vscode则关闭窗口或者Ctr+c进程就会关掉,所以Vscode的程序需要守护进程。2、阿里云服务器不需要配置入口5000或者8001。3、默认端口5000不行,更改的8001才成功。)

创建一个 webapi 项目

# 创建项目
dotnet new webapi --no-https -o testwebapi
# 发布项目
cd testwebapi/
dotnet publish -c Release
cd bin/Release/netcoreapp2.1/publish
# 运行项目
dotnet testwebapi.dll

  

使用 pm2 守护 ASP.NET Core 应用程序

1、使用pm2需要安装nodejs

2、安装pm2

npm install pm2 -g     #安装 pm2

3、结束我们刚刚运行的程序,就在我们刚刚的目录执行下面的命令:

pm2 start "dotnet testwebapi.dll" --name testwebapi

4、查看日志

pm2 logs testwebapi

5、查看应用程序信息

pm2 info testwebapi

  

6、监控应用程序

pm2 monit testwebapi

7、重启策略

pm2 会在你的应用程序异常退出时,自动帮你重启,所谓异常退出,指退出代码非0。

发布,并使用 pm2 启动(此处略)。

通过 pm2 list查询应用程序重启次数为0:

访问 api 触发异常退出:

curl http://localhost:5000/api/values

再次通过 pm2 list命令查询可以发现重启了:

  

pm2 这个工具相对于 Supervisor 和 nohup 来说,对于Supervisor,没有配置,不用输很长的命令;对于 nohup 管理进程方便。

pm2官方文档

注意:依赖问题

如果验证出现如下错误

Failed to load /opt/dotnet/shared/Microsoft.NETCore.App/1.1.0/libcoreclr.so, error: libunwind.so.8: cannot open shared object file: No such file or directory

Failed to bind to CoreCLR at '/opt/dotnet/shared/Microsoft.NETCore.App/1.1.0/libcoreclr.so'

则安装:yum install libunwind

如果验证出现如下错误

Failed to initialize CoreCLR, HRESULT: 0x80131500

则安装:yum install icu

端口的问题

其他:将 dotnet 添加到 PATH:   export PATH=$PATH:$HOME/dotnet

三、ASP.NET Core 部署Linux的更多相关文章

  1. ASP .NET CORE 部署linux 系统上的所需要的sdk 使用链接

    https://www.microsoft.com/net/learn/get-started/linuxopensuse

  2. ASP.NET CORE部署到Linux

    ASP.NET CORE部署到CentOS中 在Linux上安装.NET Core 参考:https://www.microsoft.com/net/core#linuxcentos 配置Nginx ...

  3. Asp.Net Core部署到Linux服务器

    从2016年7月, .NET Core1.0 正式发布开始,由于时间问题,我没怎么关注过.NET Core,最近刚抽出点时间研究了下,先讲下如何把ASP.NET Core部署到Linux上吧.这里我用 ...

  4. ASP.NET Core部署系列二:发布到CentOS上

    前言: 在上一节中,通过一系列的步骤,已经将项目部署到IIS上,虽然遇到了一些问题,但最终解决并成功运行了.而在这一节中,将尝试通过linux系统的环境下,部署项目,实现Net Core跨平台的亮点. ...

  5. 又一篇Centos7下的asp.net core部署教程

    历程2个多月的学习,我终于从PHP转.Net开发了. 从壹开始前后端分离[ .NETCore2.1 +Vue 2 +AOP+DI]框架 感谢老张的博客,我对asp.net core入门主要就是靠他的博 ...

  6. .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线

    Powered by ASP.NET Core on Linux! 我们全站的 .NET Core 迁移工作如火如荼,这是我们今年上半年的重要工作. 今天我们终于完成了博问产品(q.cnblogs.c ...

  7. ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成

    ASP.NET Boilerplate 学习   1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...

  8. 从零开始,将ASP.NET Core部署到Linux生产环境

    研究.NET Core已经一段时间了,一直都是在Windows上开发,这2天尝试着将公司一个很简单的内部Web项目改造成了ASP.NET Core,并且部署到Linux上.生产环境如下: Linux ...

  9. 你真的了解ASP.NET Core 部署模型吗?

    ----------------------------   以下内容针对 ASP.NET Core2.1,2.2出现IIS进程内寄宿 暂不展开讨论-------------------------- ...

随机推荐

  1. SQLAlchemy中的自引用

    SQLALCHEMY采用adjacency list pattern来表示类的自引用. 例如,对于类Node自引用: class Node(Base): __tablename__='node' id ...

  2. robotframework中的try exception。断言失败后,后面语句能继续执行

    1.在robot中,断言有时会失败,但不想影响后面语句的执行,这时候要用到 Run Keyword And Continue On Failure

  3. Linux—日志查看(测试人员)

    备注:在筛选语句后面加“--col”可以高亮显示查询结果中的关键字 cd /home/admin/logs/服务器名 #进入日志目录(错误日志文件:common-error.log),路径因公司而定 ...

  4. jmeter(二十二)内存溢出原因及解决方法

    jmeter是一个java开发的开源性能测试工具,在性能测试中可支持模拟并发压测,但有时候当模拟并发请求较大或者脚本运行时间较长时,压力机会出现卡顿甚至报异常————内存溢出, 这里就介绍下如何解决内 ...

  5. 01-vue学习篇-以优雅的姿势创建vue项目

    前言 小白一枚,今年(2019)准备学习一下前端的技术,因为发现自己对后端(python)相对比较熟悉但是还是写不出一个优雅的系统,可见前端的重要性,于是静下心来跟大佬学习.在不断的激励自己调整自己的 ...

  6. BZOJ1063 NOI2008 道路设计 树形DP

    题目传送门: BZOJ 题意精简版:给出一棵树,在一种方案中可以将树的若干链上的所有边的边权改为$0$,但需要保证任意两条链之间没有交点.问最少的一种方案,使得从根节点到其他节点经过的边的边权和的最大 ...

  7. c# 利用百度图像处理【人像分割】一键抠图

    百度AI开放平台-人像分割: http://ai.baidu.com/tech/body/seg 注意本文后面的话,百度这个技术效果太差劲了,国外这 https://www.remove.bg/ 个比 ...

  8. CentOS7 安装MySQL5.6

    1.  检查是否有MariaDB和MySQL,如果有则卸载掉 [root@--- ~]# rpm -qa | egrep "mariadb|mysql" mariadb-serve ...

  9. Python中的鸡肋多线程

    作者:DarrenChan陈驰链接:https://www.zhihu.com/question/23474039/answer/269526476来源:知乎著作权归作者所有.商业转载请联系作者获得授 ...

  10. Python入门-函数

    定义:将一组语句的集合通过一个名字(函数名)封装起来,要先执行这个函数,只需要调用其函数名即可.特性:1.减少重复代码2.使程序变的可扩展3.使程序变的易维护 函数参数:形参和实参形参:位置参数,关键 ...