Abp(.NetCore)开发与发布过程3-部署Ubuntu站点
以下是笔者在 Ubuntu 16.0-64bit 环境下 发布 ABP(.NetCore)的全过程。特此记录,希望对大家有所帮助。
准备的工具
1.PuTTY(ssh,如果不想每次都用阿里云的远程登录,那么可以试试这个。)
2.WinSCP(图形化SFTP客户端,美观又好用)
3.Ubuntu 16.0-64bit

Step 1 搭建 .NetCore运行环境
1)添加 dotnet apt-get 支持文件(Ubuntu 16.04 / Linux Mint 18环境)
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys B02C46DF417A0893
sudo apt-get update
2)安装 .NET Core SDK
sudo apt-get install dotnet-dev-1.0.
检验安装结果: 运行 dotnet 后如果是如下结果,则说明安装成功

dotnet
Step 2 发布项目
习惯用命令行 发布项目(不知道什么时候养成的怪癖) 在项目的根目录里,有一个build文件夹,进入此文件夹,运行 build-mvc.ps1


cd C:\Users\Zac\Desktop\YourProductName\build
.\build-mvc.ps1
等待发布完成. . . 会发现生成了一个outputs文件夹,发布生成的文件全部打包至了Mvc文件夹中。

(up.ps1 和 down.ps1 是在需要发布到Docker容器中时使用的ps脚本。)
至此 发布工作已结束。
特别要注意:
当你的项目需要远程链接数据库时,请先配置好数据库服务器(包括登录用户权限设置,TCP UDP 开放端口设置。默认TCP端口1433,UDP端口1434,如果防火墙启动,需要将sqlserver.exe添加到允许列表。阿里云安全组设置等等...全是踩过的坑)
其次,注意配置好连接字符串,在 appsettings.json 中。
"ConnectionStrings": {
"Default": "Data Source=xx.xx.xx.xx; Initial Catalog=YourDB; User Id=sa; password=yourpassword; MultipleActiveResultSets=True;"
},
以下两种是错误的链接字符串配置:
"ConnectionStrings": {
"Default": "Server=xx.xx.xx.xx; Database=YourDb; User=zac; Password=123qwe;"
},
"ConnectionStrings": {
"Default": "Data Source=xx.xx.xx.xx\/YourDb; User=zac; Password=123qwe;"
},
在连接字符串错误的情况下,运行项目将导致以下错误发生:
Unhandled Exception: System.NotSupportedException: The keyword 'integrated security' is not supported on this platform.
Step 3 复制发布文件至服务器
之前提到的WinSCP该派上用场了。(WinSCP下载链接)
1)打开 WinSCP 链接至你的服务器。


如图,左边是本地文件资源,右边是服务器文件资源。支持在文件夹中拖拽上传文件。
2)将上一步发布的文件夹(MVC)上传至服务器。
如图所示,已经将所有生成的文件都上传至build文件夹下。
Step 4 运行
进入项目入口所在的文件夹(例如,你的项目名称为 MyProduct,那么运行的文件应该就是 MyProduct.Web.Mvc.dll,完整的路径就是 root/zac/Mvc/build/MyProduct.Web.Mvc.dll Linux下路径是区分大小写的)
cd zac/Mvc/build
运行 MyProduct.Web.Mvc.dll
dotnet MyProduct.Web.Mvc.dll
如果一切顺利的话,输出如下

一切OK 访问一下你的网站吧!(先别急,看看你的阿里云安全组有没有开发相应的端口。)

其他
.NetCore安装参考网址,https://www.microsoft.com/net/core#centos
.NetCore下载地址,https://www.microsoft.com/net/download#core
Abp(.NetCore)开发与发布过程3-部署Ubuntu站点的更多相关文章
- Abp(.NetCore)开发与发布过程
.NetCore 项目开发正当火热,ABP也推出了.NetCore的版本.趁此机会学习.NetCore的开发与发布过程.以下是本人的踩坑经验. 在ABP官网提供单页面应用开发框架(AngularJs) ...
- Abp(.NetCore)开发与发布过程2
在Abp(.NetCore)开发过程中遇到很多问题,今天记录下Abp的防CSRF功能(AntiForgeryToken ), 背景知识. AntiForgeryToken 可以说是处理/预防CSRF的 ...
- .netcore 开发的 iNeuOS 物联网平台部署在 Ubuntu 操作系统,无缝跨平台。助力《2019 中国.NET 开发者峰会》。
2019 中国.NET 开发者峰会正式启动 目 录 1. 概述... 2 2. 准备运行程序包... 2 3. 安装.netcore. 3 4. 安 ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:4、微服务应用程序发布到Docker部署(上)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:5、微服务应用程序发布到Docker部署(下)。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- 基于.NetCore开发博客项目 StarBlog - (3) 模型设计
系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...
- .NET Core开发的iNeuOS物联网平台部署树霉派,从网关到云端整体解决方案。助力2019中国.NET峰会。
2019 中国.NET 开发者峰会正式启动 目 录 1. 概述... 2 2. 树莓派硬件配置... 2 3. 软件信息... 3 4. Raspb ...
- .NET Core开发的iNeuOS物联网平台部署树霉派(raspbian),从网关到云端整体解决方案。助力2019中国.NET峰会。
2019 中国.NET 开发者峰会正式启动 目 录 1. 概述... 2 2. 树莓派硬件配置... 2 3. 软件信息... 3 4. Raspb ...
- VS2017中使用组合项目_windows服务+winform管理_项目发布_测试服务器部署
前言:作为一名C#开发人员,避免不了常和windows服务以及winform项目打交道,本人公司对服务的管理也是用到了这2个项目的组合方式进行:因为服务项目是无法直接安装到计算器中,需要使用命令借助微 ...
随机推荐
- 查看表结构命令(mysql和oracle)
MySQL查看表结构SQL语句 = mysql查看表结构命令,如下: desc 表名; show columns from 表名; describe 表名; show create table 表名; ...
- 【LeetCode】49. Group Anagrams
题目: Given an array of strings, group anagrams together. For example, given: ["eat", " ...
- Example001使用window对象打开窗口
<!--实例001使用window对象打开窗口--> <script> <!--使用window对象打开窗口的语法格式如下--> <!--window.ope ...
- Python3 从入门到出门
引:此文是自己学习python过程中的笔记和总结,适合有语言基础的人快速了解python3和没基础的作为学习的大纲,了解学习的方向:笔记是从多本书和视频上学习后的整合版. (一)初识python 1. ...
- java equals和==区别及string类的说明
一.equals和==的区别 1.1.equals之string字符串的比较 1.1.1.源码如下图 if (this == anObject) { return true; ...
- jquery.validata.js 插件2
结合上面的,今天写一下validate的使用方法. validate()验证所选的form. validate 方法返回一个 Validator 对象.Validator 对象有很多方法可以用来引发校 ...
- 刨根究底字符编码之十四——UTF-16究竟是怎么编码的
UTF-16究竟是怎么编码的 1. 首先要注意的是,代理Surrogate是专属于UTF-16编码方式的一种机制,UTF-8和UTF-32是不用代理的. 如前文所述,为了让UTF-16能继续编码基本平 ...
- CentOS7下使用YUM安装mariadb10
1:由于centos7 默认使用yum安装MySQL的话就会安装mariadb,只是安装的版本停留在mariadb5.x,版本比较低.如果我们需要安装mariadb10这里就需要删除mariadb-l ...
- Android实现模拟表单上传
很久以前,写过一篇关于下载的文章:基于HTTP协议的下载功能实现,今天对于Android上的文件上传,也简单的提两笔.在Android上,一般使用Http 模拟表单或者FTP来进行文件上传,使用FTP ...
- FineReport单元格扩展与父子格设置
1.描述 在讲述报表设计之前,首先介绍一下FineReport报表制作的几个基本概念,本章节介绍FineReport报表赖以生存的单元格扩展. 扩展,顾名思义,就是由一变多,那么单元格扩展就是指在we ...