【asp.net】Linux 部署 asp.net core 项目

Net sdk官网LINUX配置地址:https://www.microsoft.com/net/core#windows

参考:http://www.07net01.com/2016/08/1638058.html

http://www.cnblogs.com/calvinK/p/5628298.html

http://www.mamicode.com/info-detail-1535706.html

http://www.cnblogs.com/ants/p/5732337.html

1、项目发布

1.1、使用vs2015 发布项目

注:在网上看了很多教程都说要在project.json中配置runtimes 块,删除Microsoft.NETCore.App”节点中

"type" : "platform"的配置,只要version节点。      经过测试不需要删除也可以

1.1.1 网上找的教程

  1. 删除“Microsoft.NETCore.App”节点中"type" : "platform"的配置
  2. 增加“runtimes”节点中对应的平台 如下:
  3.  "runtimes": { //加入runtime
        "win7-x64": {},
        "win7-x86": {},
        "osx.10.10-x64": {},
        "osx.10.11-x64": {},
        "Ubuntu.14.04-x64": {},
        "centos.7-x64": {}
      }
  4. 修改后的“project.json”如下:

1.1.2 自己测试通过

1、 修改project.json文件中 publishOptions节点,修改后如下: 这里修改的发布是发布的时候加入你的视图、控制器等(都是文件夹名称),根据自己的项目结构修改。我这里是加了个自己定义的接口类的文件夹

"publishOptions": {
    "include": [
      "wwwroot",
      "Controllers",
      "IRepositories",
      "Models",
      "Views",
      "web.config"
    ]
  }

2、在这我只修改了publishOptions节点,其他不做修改,右键点击项目选择发布:

3、点击发布后的界面,选择自定义后输入你的配置名(名称在定义),点击确认后直接下一步

4、发布方法选择文件系统,目标位置选择你要发布后保存的地方,可以直接点击发布,后面的设置保持默认

2、在LINUX 系统CentOS7 部署项目

注:其他Linux系统起微软官网找配置命令,地址:https://www.microsoft.com/net/core#windows

2.1、sudo yum install libunwind libicu(安装libicu依赖)

2.2、curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131(下载sdk压缩包)

2.3、sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet(解压缩)

2.4、sudo ln -s /opt/dotnet/dotnet /usr/local/bin(创建链接)

输入 dotnet –info 来查看是否安装成功,如果可以执行则表明.NET Core SDK安装成功

3、项目运行

3.1、在Linux目录 home下创建wwwroot文件夹(文件夹名称可自定义)。

3.2、把已经发布好的项目上传到上面创建的wwwroot下

3.3、使用命令 dotnet 你的项目路径/OneAspNetCore.dll 运行项目:OneAspNetCore.dll 这是我的项目发布后生成的dll文件,OneAspNetCore是我的项目名称。

运行后如图所示运行成功,你可以使用Linux服务器上的浏览器输入:localhost:5000 访问项目,info信息提示在这里不用管它

注:在执行 dotnet  命令运行项目后不能在做其他操作或按Ctrl+c退出,否则项目会停止运行

3.3.1、运行项目时会报错 version 版本错误如图所示:

3.3.2、解决上图错误:更改项目project.json文件中dependencies节点的 Microsoft.NETCore.App版本信息,你也可以升级服务器的 sdk版本,修改如下:

 "Microsoft.NETCore.App": {
      "version": "1.0.1",//把版本号修改为 1.0.0
      "type": "platform"
    },

浏览器访问后可能会访问不到,记录一下错误信息:

当出现如下错误时有两种可能:

1、项目发布时未在project.json文件中 publishOptions节点配置视图、控制器等,检查是否配置,修改后重新发布项目到服务器上,配置如下:

 "publishOptions": {
    "include": [
      "wwwroot",
      "Controllers",
      "IRepositories",
      "Models",
      "Views",
      "web.config"
    ]
  }

2、当第一步检查已经配置好,项目也运行成功就是访问不到!解决方法:使用命令 cd /home/wwwroot/dev/ 到项目文件夹中 在执行dotnet OneAspNetCore.dll

在打开服务器浏览器访问就能访问到了,出现这个问题网上找了下说是权限问题!!!

注:以上部署只能内部访问,外部访问配置需要配置 nginx服务 配置地址:http://www.cnblogs.com/ants/p/5732337.html

时间: 2024-10-06 23:06:13

【asp.net】Linux 部署 asp.net core 项目的相关文章

ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus

原文:ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus ASP.NET Linux部署(2) - MS Owin + WebApi + Mono + Jexus 本文承接我的上一篇博文: ASP.NET 5 Linux部署,那篇文章主要是针对最新的ASP.NET 5的,但在随后的研究中,我对这种娱乐型的部署依然不是非常满意,当然其主要原因是因为ASP.NET 5 依然处于RC版本,并不十分成熟. 但可以预见到的是,就算本月ASP.NET 5

Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码

Linux 部署ASP.NET SQLite 应用 的坎坷之旅.文章底部 附示例代码. 有一台闲置的Linux VPS,尝试着部署一下.NET 程序,结果就踏上了坑之路,不过最后算是完美解决问题,遂记录如下. 环境:Linux系统为centos 6  mono 版本 mono-3.2.1  jexus版本 jexus-5.6.4 一.安装环境 1.安装mono 首先安装系统环境: yum -y install gcc gcc-c++ bison pkgconfig glib2-devel get

Nginx知多少系列之(五)Linux下托管.NET Core项目

目录 1.前言 2.安装 3.配置文件详解 4.工作原理 5.Linux下托管.NET Core项目 6.Linux下.NET Core项目负载均衡 7.Linux下.NET Core项目Nginx+Keepalived高可用(主从模式) 8.Linux下.NET Core项目Nginx+Keepalived高可用(双主模式) 9.Linux下.NET Core项目LVS+Keepalived+Nginx高可用集群 10.构建静态服务器 11.日志分析 12.优化策略 13.总结 在这里我就不介

Linux部署ASP.NET 5 (vNext)

ASP.NET 5 (vNext) Linux部署 引言 工欲善其事,必先利其器. 首先,我们先明确下以下基本概念 Linux相关 Ubuntu Ubuntu是基于linux的免费开源桌面PC操作系统 十分契合英特尔的超极本定位 支持x86.64位和ppc架构 全面支持网页浏览器   WPS.Ubuntu基于Debian发行版和GNOME桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity,与Debian的不同在于它每6个月会发布一个新版本.Ubuntu的目标

【无私分享:ASP.NET CORE 项目实战(第十一章)】Asp.net Core 缓存 MemoryCache 和 Redis

目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 经过 N 久反复的尝试,翻阅了网上无数的资料,GitHub上下载了十几个源码参考, Memory 和 Redis 终于写出一个 简陋 的 封装,为了统一和易用,我们两种缓存都统一实现了一个接口 ICacheService,微软也有很多是通过IDistributedCache,大家可以参考 https://docs.asp.net/en/latest/performance/caching/distributed.html 

Jexus部署Asp.Net Core项目

在之前的我的博客项目中,我将.net Core发布到Cent OS 上,使用的Nginx代理以及Supervisor进程守护,看过我的博客的童鞋,也会发现,这种方式比较麻烦,光命令行就看的头大,总共部署了两次还是三次,可是每次一样都是要翻博客翻资料,想想还是IIS好用,点几下鼠标就完成了,没有这么多步骤.之前也一直想尝试下使用Jexus部署我的项目,也一直没有时间搞,今天趁着外面下雨,就仔细学习下这个东东. Jexus百度百科: Jexus 即 Jexus Web Server,简称JWS,是L

在IIS上部署你的ASP.NET Core项目

概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等).而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,

在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

在Linux环境下使用Apache部署ASP.NET Core

在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Apache(阿帕奇)中.    很幸运能够和大家一起学习和探讨ASP.NET Core 本文章运行环境如下: (1)安装Apache web服务器 运行命令行如下: sudo yum update -y   //更新仓库 sudo yum -y install httpd mod_ssl   //安装