ASP.NET Core : 九.从Windows发布到CentOS的跨平台部署(上)

作者阿里云代理 文章分类 分类:linux图文教程 阅读次数 已被围观 775

本文主要内容:


 1.东西预备


 2.CentOS 上装置.NET Core环境


 3.Windows上用VS发布项目


 4.项目运行测试


 5.装置并配置Apache


 6.创立service管理应用


 7.其他注意事项


 8.独立布置(SCD)


   9.2018.5.8文章更新:Visual Studio 2017 15.7版别的项目发布提供了布置模式(结构依赖和独立布置)和方针运行时(win、osx、linux)的选择功能


 示意图:

4.png

最近在阿里云上弄了个ECS玩,已然.NET Core跨渠道了,也就选了个CentOS的体系,然后踩坑开端。


一、东西预备

 Putty:阿里云提供了一个网页方法长途操作CentOS的指令行东西,没找到怎么粘贴,挺不好用的。这个是一个指令行的小软件,也省去了每次都要登录阿里云控制台的过程。链接


 FileZila:sftp东西,用于将windows上生成的发布包弄到CentOS上去。链接


二、CentOS 上装置.NET Core环境

 装置.NET Core的环境有两种方法,SDK和Runtime,差异类似java的JDK和JRE。


 官方提供的下载页面用Build Apps 和Run Apps描述这两个, 我们不需要在CentOS上编码, 所以装置Runtime就够了。


 在页面的all downloads中找到CentOS对应的Runtime版别页面(链接)进行装置,这里要注意一下:


 坑一:版别问题,看了一下自己的VS中项目的Microsoft.AspNetCore.All版别是2.0.6, 也就去找了Runtime的2.0.6版别, 否则容易呈现某些组件在VS上的引证版别和CentOS上的环境中的版别不一致的错误。


 通过Putty链接到CentOS服务器,依照该页面上的过程履行如下指令:

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' 3 4 sudo yum update 5 sudo yum install libunwind libicu

最终还有下面关键一步我履行后布置仍会有提示某包找不到的问题,

sudo yum install dotnet-runtime-2.0.6

在github上看到这样一段话:

Linux On supported Linux systems, register the Microsoft Product feed as described above and install dotnet-hosting-2.0.6 using your package manager. This will also install the .NET Core Runtime and other required packages.

后来测试了一下不装置dotnet-runtime-2.0.6而是装置dotnet-hosting-2.0.6成功。

sudo yum install dotnet-hosting-2.0.6

三、Windows上用VS发布项目

 右键项目选择发布,默许情况下是FDD(依赖结构布置),发布生成的内容不包含依赖的结构内容,将依赖上文装置的runtime。


 在CentOS上创立个文件夹, 通过FileZila将发布的文件上传到该文件夹。


 参考创立目录指令: mkdir -p /var/aspnetcore/hellomvc    


本公司销售:阿里云新/老客户,只要购买阿里云,即可享受折上折优惠!>

我有话说: