在Linux环境下使用Jexus部署ASP.NET Core
关于如何在Linux中添加ASP.NET Core运行时环境请参考我的上一篇文章,本文章将不再做赘述。
本文章运行环境如下:

(1) 安装独立版Jexus
本教程安装的是独立版的Jexus,独立版的Jexus自带Mono,使用的是Mono的稳定版本4.8。安装 Jexus 直接使用一下命令即可(需要在root身份下执行):
curl https://jexus.org/release/x64/install.sh|sh
安装成功后会提示:OK, Jexus has been installed in /usr/jexus.
(2)创建一个ASP.NET Core应用
我们按照微软官方的ASP.NET Core文档新建一个ASP.NET Core MVC应用,输入如下命令
dotnet new mvc -o aspnetcoreapp // 在当前目录下创建一个MVC Web应用
注意:此处可能会抛出Warn:“Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Error -99 EADDRNOTAVAIL address not available'”。微软的解决方案:https://github.com/aspnet/KestrelHttpServer/issues/2117
我尝试使用 ASPNETCORE_URLS="http://*:5000" dotnet run 替代 dotnet run 命令在特定的情况下可以解决此类问题

完美解决方案:在Program.cs类 BuildWebHost方法中 添加指定的端口

然后执行 dotnet run 命令即可完美解决此问题。

(3)生成ASP.NET Core部署文件
我们将部署文件存放在 /var/www/aspnetcore 目录下
命令如下:
mkdir -p /var/www/aspnetcore //新建目录
cd /home/aspnetcoreapp/ //定位到项目工程下
dotnet publish -o /var/www/aspnetcore //将项目工程发布在指定目录下
发布后目录结构如下:

因为这是一个空的项目工程,所以我们将项目工程中的视图部分复制到部署目录中

我们来测试一下,部署工程是否运行正常
执行如下命令
dotnet /var/www/aspnetcore/aspnetcoreapp.dll

测试正常,至此,我们已完成部署结构,稍后我们将在Jexus上部署运行此工程。
(4)在Jexus 上部署 ASP.NET Core项目工程
Jexus 中 一个配置文件对应一个网站,因为我们需要新建一个ASP.NET Core网站的配置文件
运行如下命令:
cd /usr/jexus/siteconf //定位到Jexus网站配置文件目录
cp default aspnetcore //复制Jexus 提供的默认配置模版(这年头谁手写?)
vi aspnetcore //打开我们新建的网站配置文件,然后修改如下内容(这是命令行修改,比较麻烦,忍忍就好了)

OK,我们已经完成了ASP.NET Core网站的配置文件,下一步让我们把配置文件的默认模板干掉把
rm -rf /usr/jexus/siteconf/default //干掉默认的配置模板
然后,让我们启动Jexus,看一下效果
如果你的Jexus已经启动,运行如下命令
sh /usr/jexus/jws restart //重启Jexus
如果你的Jexus是停止状态,运行如下命令
sh /usr/jexus/jws start //启动Jexus
附赠送停止命令
sh /usr/jexus/jws stop //停止Jexus

让我们看一下效果吧.

在Linux环境下使用Jexus部署ASP.NET Core的更多相关文章
- 在Linux环境下使用Apache部署ASP.NET Core
在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Ap ...
- ubuntu16.4下用jexus部署asp.net core rtm
上篇文章介绍了下用vs发布部署到iis环境,今天说下ubuntu 下部署asp.net core,不需要安装.net core sdk,自带运行时方式部署,利用jexus服务器转发请求到asp.net ...
- Jexus部署Asp.Net Core项目
在之前的我的博客项目中,我将.net Core发布到Cent OS 上,使用的Nginx代理以及Supervisor进程守护,看过我的博客的童鞋,也会发现,这种方式比较麻烦,光命令行就看的头大,总共部 ...
- Centos下使用Docker部署asp.net core项目
本文讲述 CentOS 系统 Docker 中部署 asp.net core开源项目 abp 的过程 步骤 1. 拉取 asp.net core 基础镜像 docker pull microsoft/ ...
- Linux环境下详细讲解部署MySQL5.7版本
说明: 在本人写作这篇安装MySQL文章时,虽然MySQL已经发布到8.0.17版本,但对于行业来说,主力版本依然是5.7版本.目前在Linux环境默认安装时,大部分已经默认安装到8版本了,所以本人特 ...
- centos 7 下使用jexus 配置ASP.NET Core
1.安装jexus Jexus独立版(专业版)的安装 Jexus“独立版”指的是自带.net运行时(mono),不需要在客户服务器安装mono就能正常运行的Jexus版本,该版本只支持 64位Linu ...
- LINUX 下Jexus部署ASP.NET Core WebApi
服务器:LINUX ubuntu16.04 开发软件:VS2015 Update3 dotnet sdk: DotNetCore.1.0.0-VS2015Tools.Preview2 1. ...
- linux系统下基于mono部署asp.net,使用ef6与mysql出现的问题【索引】
git clone github.com/mono的源码,日期:2014-06-19,百度网盘链接:http://pan.baidu.com/s/1kTG9EUb 关于asp.net利用mono部署到 ...
- linux 环境下tomcat中部署jfinal项目
tomcat中部署jfinal项目 问题现象如下图 问题描述: 我在自己的windows7系统上tomcat下面跑这个项目没有任何问题吗,但是当我把项目上传到linux服务器上的tomcatwebap ...
随机推荐
- Linux系统下DNS主从配置详解
一.DNS概述DNS(Domain Name System),即域名系统.因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串. ...
- POJ3417 LCA+树dp
http://poj.org/problem?id=3417 题意:先给出一棵无根树,然后下面再给出m条边,把这m条边连上,然后每次你能毁掉两条边,规定一条是树边,一条是新边,问有多少种方案能使树断裂 ...
- Linux系统CPU相关信息查询
Linux系统CPU相关信息查询 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.lscpu常用参数介绍 1>.查看帮助信息 [root@node105 ~]# lscpu ...
- Java使用POI导入Excel异常Cannot get a text value from a numeric cell 解决
异常原因:Excel数据Cell有不同的类型,当我们试图从一个数字类型的Cell读取出一个字符串并写入数据库时,就会出现Cannot get a text value from a numeric c ...
- Hadoop记录-Yarn命令
概述 YARN命令是调用bin/yarn脚本文件,如果运行yarn脚本没有带任何参数,则会打印yarn所有命令的描述. 使用: yarn [--config confdir] COMMAND [--l ...
- 跳到IE9的一个坑里了(枚举 JavaScript 属性)
有一段Json如下 [{"SaleName_ID":"0","SaleName":"","28":& ...
- 5句话搞定ES5作用域
JavaScript的作用域一直以来是前端开发中比较难以理解的知识点,对于JavaScript的作用域主要记住几句话,走遍天下都不怕... 一.“JavaScript中无块级作用域” 在Java或C# ...
- 【1】【leetcode-93】复原IP地址
(不会,典型) 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135 ...
- 在浏览器窗口中加载新的url
通常,在前端页面中如果需要跳转到指定页面,可以通过<a>标签进行跳转.而在某些情况下,比如ajax调用之后想直接跳转到指定页面,想跳转页面不能再用<a>标签实现.此时,可以通过 ...
- nginx接入let's encrypt
按以下步骤: 一.放开443端口 我的是云服务器,默认没开放443端口,需要先在控制台放开 二.使用let’s encrypt 生成证书 执行以下命令: git clone https://githu ...