三、ASP.NET Core 部署Linux
预备工作
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 管理进程方便。
注意:依赖问题
如果验证出现如下错误
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的更多相关文章
- ASP .NET CORE 部署linux 系统上的所需要的sdk 使用链接
https://www.microsoft.com/net/learn/get-started/linuxopensuse
- ASP.NET CORE部署到Linux
ASP.NET CORE部署到CentOS中 在Linux上安装.NET Core 参考:https://www.microsoft.com/net/core#linuxcentos 配置Nginx ...
- Asp.Net Core部署到Linux服务器
从2016年7月, .NET Core1.0 正式发布开始,由于时间问题,我没怎么关注过.NET Core,最近刚抽出点时间研究了下,先讲下如何把ASP.NET Core部署到Linux上吧.这里我用 ...
- ASP.NET Core部署系列二:发布到CentOS上
前言: 在上一节中,通过一系列的步骤,已经将项目部署到IIS上,虽然遇到了一些问题,但最终解决并成功运行了.而在这一节中,将尝试通过linux系统的环境下,部署项目,实现Net Core跨平台的亮点. ...
- 又一篇Centos7下的asp.net core部署教程
历程2个多月的学习,我终于从PHP转.Net开发了. 从壹开始前后端分离[ .NETCore2.1 +Vue 2 +AOP+DI]框架 感谢老张的博客,我对asp.net core入门主要就是靠他的博 ...
- .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线
Powered by ASP.NET Core on Linux! 我们全站的 .NET Core 迁移工作如火如荼,这是我们今年上半年的重要工作. 今天我们终于完成了博问产品(q.cnblogs.c ...
- 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.解压后打开解决方案,解决方案目录: ...
- 从零开始,将ASP.NET Core部署到Linux生产环境
研究.NET Core已经一段时间了,一直都是在Windows上开发,这2天尝试着将公司一个很简单的内部Web项目改造成了ASP.NET Core,并且部署到Linux上.生产环境如下: Linux ...
- 你真的了解ASP.NET Core 部署模型吗?
---------------------------- 以下内容针对 ASP.NET Core2.1,2.2出现IIS进程内寄宿 暂不展开讨论-------------------------- ...
随机推荐
- docker 2 docker介绍
docker是基于go语言实现的云开源项目 docker的主要目标是‘build ,ship and run any app,anywhere’,也就是说通过对应用程序组件的封装,分发,部署,运行等生 ...
- 深入理解 Getter和Setter 对对象的属性监听
阅读目录 一:理解普通对象在声明时添加 get.set 二:Object.prototype.__defineGetter__ 和 Object.prototype.__defineSetter__ ...
- Generative Adversarial Nets[Improved GAN]
0.背景 Tim Salimans等人认为之前的GANs虽然可以生成很好的样本,然而训练GAN本质是找到一个基于连续的,高维参数空间上的非凸游戏上的纳什平衡.然而不幸的是,寻找纳什平衡是一个十分困难的 ...
- 破解爱奇艺优酷等Vip视频
现在网络上兴起卖低价Vip会员的,博主在这里介绍一个破解软件,不需要登录,找到视频播放页就可以观看! 软件下载地址:http://zyzpp.cn/ 1.下载软件安装后打开: 2.比如我们要看爱奇艺的 ...
- R实战 第十二篇:随机数
由R生成的随机数实际上伪随机数,也就是说,随机数是由某种算法而不是真正的随机过程产生的,随机数生成器需要一个初始值来生成数字,该初始值叫做种子.通过把种子设置为特定的值,可以保证每次运行同一段代码时都 ...
- .NetCore简单学习图谱
一.学习途径 学习.netcore的最佳途径在哪里,无疑是微软官方.netCore指南.它覆盖十分全面,就目前网上经常看到的各种文章都能在微软处找到类似文章,堪称.netcore的百科全书.所以我利用 ...
- Flask发送邮件
参考:官方文档:https://pythonhosted.org/Flask-Mail/ 1.安装插件 Flask-Mail (pip install Flask-Mail) 2.配置 Flask- ...
- LCT维护删除时间最晚生成树
用来做动态图问题. 维护一棵删除时间最晚的生成树,这样好处是加入一条非树边时可以直接判断加还是不加,没有现在不加入而之后再加入的情况.要是我比你先被删,那我就完全没必要加.否则你现在就可以被删除掉.
- NFV组播实验对照
一 论文题目:Approximation and Online Algorithms for NFV-Enabled Multicasting in SDNs 发表时间:2017 期刊来源:Inter ...
- p201 谱集是闭集 有界集
1 是如何来的? 由1 如何推出 2 2 是如何来的?谢谢 1.σ是的补集 入属于ρ 稠密是因为 T有定义的地方,λI-T都有定义,有界是因为 所以 然后 ρ是σ的补集 模比||T||大的数都 ...