一、文章概要

 这篇文章是讲述一个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. pip安装selenium报错:Read timed out

    今天打算把selenium降级重新安装,发现安装时总是失败,报如下错误: raise ReadTimeoutError(self._pool, None, 'Read timed out.') pip ...

  2. 2017-2018-1 20155205 实现mypwd

    2017-2018-1 20155205 实现mypwd 课堂总结 根据上课对ls -l功能的实现,我总结了实现一个linux命令需要的步骤: 使用man -k xx | grep xx查看帮助文档, ...

  3. Beta冲刺集合

    1.Day1 http://www.cnblogs.com/bugLoser/p/8075868.html 2.Day2 http://www.cnblogs.com/bugLoser/p/80758 ...

  4. python 实现cm批量上传

    import requests import json import time import random url = 'http://cm.admin.xxxx.com/customer/aj_ad ...

  5. 2017-2018-1 我爱学Java 第六七周 作业

    团队六七周作业 完善版需求规格说明书 制定团队编码规范 数据库设计 后端架构设计 TODOList 参考资料 完善版需求规格说明书 <需求规格说明书>初稿不足之处: 1.开发工具写错 2. ...

  6. python pip包管理

    pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品.本文将详细说明 安装 pip 的方法和 使用 pip 的一些基本操作如安装.更新和卸载 python ...

  7. scrapy 修改URL爬取起始位置

    import scrapy from Autopjt.items import myItem from scrapy.http import Request class AutospdSpider(s ...

  8. Flask 部署和分发

    到目前为止,启动Flask应用都是通过"app.run()"方法,在开发环境中,这样固然可行,不过到了生产环境上,势必需要采用一个健壮的,功能强大的Web应用服务器来处理各种复杂情 ...

  9. 最短路算法模板SPFA、disjkstra、Floyd

    朴素SPFA(链表建边) #include <iostream> #include <cstdio> #include <cstring> #include < ...

  10. 前端面试题:JS中的let和var的区别

    最近很多前端的朋友去面试被问到let和var的区别,其实阮一峰老师的ES6中已经很详细介绍了let的用法和var的区别.我简单总结一下,以便各位以后面试中使用. ES6 新增了let命令,用来声明局部 ...