一、文章概要

 这篇文章是讲述一个Linux 新手将 .NET-Core 项目部署在 Linux 服务器上的一个记录,以及在部署期间遇到的问题以及解决办法。有不恰当的地方。欢迎大神指正。

二、前期准备

 如果你要部署在Linux服务器上,首先你需要连接到Linux服务器。那么用什么工具连呢?1. 如果你是在Windows的系统环境下,我是采用 PuTTY来进行SSH 连接的。可以参考:使用Putty连接SSH管理linux图文教程 。2.如果你的系统是Mac 的,那直接用Terminal 就可以啦。输入:

ssh root@hostname

然后就连接上Linux 服务器啦。

   2.1 项目环境

  • .NET-Core 项目的版本为 .NET Core 1.1
  • Linux 服务器的版本为Ubuntu 14.04

   2.2 所需工具

  • PuTTY

三、文章内容

  在上面的步骤都做好了之后呢,我们登陆到Linux 服务器上,进行如下操作:

  1. 可以先用mkdir /data 创建一个发布用的文件夹。
  2. 然后进入cd data
  3. 操作 git ,先把你的项目clone 到 data文件夹 git clone 项目地址
  4. 进行dotnet 的命令操作。 dotnet restore 进行包的还原,有些因为是有些包是自己公司的,所以要加上自己公司包的地址
dotnet restore -s http://nuget.222.om/nuget/core -s http://nuget.565646.com/nuget/Default
  1. dotnet publish -c release 操作,进行发布。发布成功,得到发布后的路径为:/data/MyProject/MyProject.Web/bin/release/netcoreapp1.1/ubuntu.14.04-x64/publish
  2. supervisor 来管理
  3. 先安装 supervisor 通过 用apt-get install supervisor命令安装supervisor
  4. 在 /etc/supervisor/conf.d 目录中添加 q.conf 配置文件,其中的配置如下:
[program:q]
directory=/data/MyProject/MyProject.Web/bin/release/netcoreapp1.1/ubuntu.14.04-x64/publish
command=/data/MyProject/MyProject.Web/bin/release/netcoreapp1.1/ubuntu.14.04-x64/publish/MyProject.Web
autostart=true
autorestart=true
stderr_logfile=/var/log/q.err.log
stdout_logfile=/var/log/q.out.log
environment=Hosting__Environment=Production
user=root
stopsignal=INT
  1. 运行命令service supervisor restart重启supervisor,站点就会自动启动
  2. 在浏览器输入地址,成功运行。

四、问题解决

   4.1 错误:

Err https://apt-mo.trafficmanager.net trusty/main amd64 Packages

Bad header line

   解决:

https://www.idaima.com/a/6735.html

   4.2 错误:

Reading package lists... Done

Building dependency tree

Reading state information... Done

E: Unable to locate package dotnet-dev-1.0.0-preview2.1-003177

E: Couldn't find any package by regex 'dotnet-dev-1.0.0-preview2.1-003177'

   解决:

由于上一个问题没解决导致

   4.3 错误:

在Linux上还原包失败

   解决:

有些因为是有些包是自己公司的,所以要加上自己公司包的地址```C#

dotnet restore -s http://nuget.222.om/nuget/core -s http://nuget.565646.com/nuget/Default

####   4.4 问题:

> A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name correct and that SQL Server is configured to allow remote connections.(provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.AggregateException: One or more errors occurred. (No such device or address) ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: No such device or address

####   相关问题:
> https://github.com/dotnet/corefx/issues/8086 ###五、参考文献 * 1.这篇是讲如何在Linux 上配置`.NET-Core`的环境的。[.NET - Powerful Open Source Development](https://www.microsoft.com/net/core#linuxubuntu)
* 2.这篇是讲如何使用Putty连接SSH管理linux图文教程。[使用Putty连接SSH管理linux图文教程](http://down.chinaz.com/server/201109/1169_1.htm)
* 3.这篇是讲sudo 出现unable to resolve host 解决方法。[sudo 出现unable to resolve host 解决方法](http://blog.csdn.net/ichuzhen/article/details/8241847)
* 4.这篇是讲Vim常用的命令,因为我刚刚接触 Linux ,对那些命令有些陌生,大神可以跳过。[Vim常用的命令](http://pizn.github.io/2012/03/03/vim-commonly-used-command.html)
* 5.记一次阿里云Linux服务器安装.net core sdk的问题以及解决方法.[记一次阿里云Linux服务器安装.net core sdk的问题以及解决方法](https://www.idaima.com/a/6735.html)
* 6.System.Net.Internals.InternalSocketException on OSX/Linux (Debian).[System.Net.Internals.InternalSocketException on OSX/Linux (Debian)](https://github.com/dotnet/corefx/issues/8086)
* 7.ASP.NET Core Web API on Ubuntu 14.04 LTS doesn't get SQL connection to MSSQL 2008 server. [ASP.NET Core Web API on Ubuntu 14.04 LTS doesn't get SQL connection to MSSQL 2008 server](http://stackoverflow.com/questions/40150357/asp-net-core-web-api-on-ubuntu-14-04-lts-doesnt-get-sql-connection-to-mssql-200)
* 8.Linux sudo 命令。[Linux sudo 命令](http://www.cnblogs.com/sparkdev/p/6189196.html)
* 9.Linux kill 强制关闭 进程。(不建议使用)[Linux kill 强制关闭 进程](http://blog.csdn.net/lechengyuyuan/article/details/16337233)
* 10.Linux认证辅导:Linux下杀僵尸进程办法。 [Linux认证辅导:Linux下杀僵尸进程办法](http://6244685.blog.51cto.com/6234685/1316234)

在Linux服务器部署 .NET-Core 项目的更多相关文章

  1. Linux服务器部署.Net Core笔记:目录

        目录 Linux服务器部署.Net Core笔记:一.开启ssh服务 Linux服务器部署.Net Core笔记:二.安装FTP Linux服务器部署.Net Core笔记:三.安装.NetC ...

  2. Linux服务器部署.Net Core笔记:四、安装Supervisor进程守护

    Supervisor 是用 Python 开发的 Linux/Unix 系统下的一个进程管理工具.它可以使进程脱离终端,变为后台守护进程(daemon).实时监控进程状态,异常退出时能自动重启. Su ...

  3. 在Linux上部署DotNet Core项目的时候发现Apache无法转发Kestrel的5000端口的问题

    CentOS服务器上使用Apache托管Dotnet Core2,服务启动了,端口也打开了.在本地使用curl命令可以访问5000端口的网页内容,但是访问Apache的端口却无法获取到网页的内容.想起 ...

  4. linux 服务器部署的web项目存入数据库的时间不正确

    在linux获取当前时间 date 获取的时间是正常的 ----- java写了个测试类 public class TestDate { public static void main(String[ ...

  5. Linux服务器部署.Net Core笔记:六、安装MySQL

    接下来我们在 Centos7 系统下使用 yum 命令安装 MySQL,需要注意的是 CentOS 7 版本中 MySQL数据库已从默认的程序列表中移除,所以在安装前我们需要先去官网下载 Yum 资源 ...

  6. Linux服务器部署.Net Core笔记:五、安装Nginx

    我们搜索一下yum库关于nginx的rpm包:yum list | grep nginx 找到rpm安装包,我们就可以使用yum直接安装了:yum install nginx 修改nginx配置文件: ...

  7. Linux服务器部署.Net Core笔记:三、CentOS 7上安装.NetCore运行环境

    1.要开始安装 .NET,您需要注册 Microsoft 签名密钥并添加 Microsoft 产品提要.每台机器只需要做一次. 打开命令提示符并运行以下命令:sudo rpm -Uvh https:/ ...

  8. Linux服务器部署.Net Core笔记:二、安装FTP

    1.安装 安装ftp:yum install -y vsftpd 将ftp设置开机启动:systemctl enable vsftpd.service 2.配置 安装好后在ftp配置文件里进行配置 : ...

  9. Linux服务器部署.Net Core笔记:一、开启ssh服务

    开启ssh服务需要root权限,先用root账户登陆系统 在安装ssh前我们先更新一下yum:yum update 先检查有没有安装ssh服务:rpm -qa | grep ssh 如果没有安装ssh ...

  10. linux部署.net Core项目

    首篇笔记,多多关照.方便回忆和给新手指导,大神绕道 首先在Linux系统部署.net Core项目首先准备一个Linux系统的服务器,百度云,阿里云都行. 1.net core 部署在Linux系统上 ...

随机推荐

  1. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API

    不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...

  2. Eclipse配置类似sublime的黑色主题

    另一篇中,详细介绍了如何使用Eclipse+Pydev搭建Python环境,传送门:http://www.cnblogs.com/BH8ANK/p/8688110.html 下面介绍下如何在Eclip ...

  3. 22.C++- 继承与组合,protected访问级别

    在C++里,通过继承和组合实现了代码复用,使得开发效率提高,并且能够通过代码看到事物的关系 组合比继承简单,所以在写代码时先考虑能否组合,再来考虑继承. 组合的特点 将其它类的对象作为当前类的成员使用 ...

  4. mongodb 定时备份

    通过centos 脚步来执行备份操作,使用crontab实现定时功能,并删除指定天数前的备份 具体操作: 1.创建Mongodb数据库备份目录 mkdir -p /home/backup/mongod ...

  5. Python内置函数(59)——open

    英文文档: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, ope ...

  6. pygame事件之——控制物体(飞机)的移动

    近来想用pygame做做游戏,在 xishui 大神的目光博客中学了学这东西,就上一段自己写的飞机大战的代码,主要是对键盘控制飞机的移动做了相关的优化 # -*- coding: utf-8 -*- ...

  7. Oracle10g物理DG详细配置方法及步骤

    --测试环境:    OS:Redhat linux(64)    Primary:    IP:192.168.94.198    SID:dgdb1    Hostname:dg1    DB_U ...

  8. 快速搭建ssm框架

    快速搭建SSM框架 因为最近有很多朋友问我自己的项目搭建的不够完善,并且经常出现一些小问题,那么今天我又整理了一下文档教大家如何快速搭建SSM框架我是用 eclipse搭建的,如果想用idear的话我 ...

  9. 阿里云API网关(11)外网访问 阿里云API网关内定义的API步骤:

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  10. Docker学习笔记 - Docker容器的网络基础

    一.虚拟网桥 docker0 docker0 是 linux的虚拟网桥,守护进程通过docker0给容器提供网络连接的各种服务. 网桥是数据链路层设备,通常ip地址是网络层的设置.linux的虚拟网桥 ...