.Net Core最大的亮点就是跨平台了,下面介绍下在Windows下和Liunx下的部署。

首先发布项目文件,点击网站项目右键 发布:

从下图发布的文件图片可以看出,不像以前bin目录下有很多dll,现在总体文件大小比以前小了很多

一.Windows下部署(较比之前部署多了下载一个模块和选择无托管)

(1)安装AspNetCoreModule托管模块(已安装则跳过),点击我下载

(2)安装之后在模块里可以找到AspNetCoreModule就说明成功了

(3) 在IIS中添加网站:

最后选择 无托管代码 即可

(4)运行效果:

二.Liunx部署

(1)这里以迷你版的CentOs(CentOS-7-x86_64-Minimal-1708)为示例,运行CentOS

1.修改 ifcfg-ens33 文件

修改之后按ESC键,再输入:wq保存退出,最后输入 service network restart 重启网卡

2.安装net-tools

输入sudo yum install net-tools,最后根据提示输入Y即可

3.输入ifconfig,查看当前系统ip地址

4.第三步我们知道了IP地址,下面就使用windows下的一个工具来操作centOS(毕竟在CentOs中操作比较麻烦),工具:点击下载putty

复制好文字右键就是粘贴

5.Nginx的安装(重启Nginx命令: systemctl restart nginx)

输入命令( 根据提示输入Y 即可):

sudo yum install epel-release

sudo yum install nginx

sudo systemctl start nginx

还需要输入关闭防火墙命令:

sudo firewall-cmd --permanent --zone=public --add-service=http

   sudo firewall-cmd --permanent --zone=public --add-service=https

   sudo firewall-cmd --reload

完成之后可以在Windows的浏览器中输入上面的IP访问了

6.在CentOs中下载.Net Core

具体操作:https://www.microsoft.com/net/learn/get-started/linuxcentos

安装成功之后输入dotnet --version会出现版本则说明成功了

7.将我们在 Visual Studio 2017 中的网站发布文件复制到CentOs中,我们需要用到FTP传输工具,这里使用FlashFXP

首先在FlashFXP菜单中找到 站点-站点管理器-新建站点

连接成功之后,在home文件夹下新建netcore文件夹,然后把发布文件通过FTP传输进去

如果输入dotnet CoreDemo.dll出现报错,运行命令: sudo yum install dotnet-sdk-2.1.3(或者在上面第6步操作的时候直接安装这个)

安装之后再次输入dotnet CoreDemo.dll:

在CentOS中使用命令: curl http://localhost:5000没有出现错误则成功

最后修改Nginx配置来实现局域网访问:

使用FlashFXP进入/etc/nginx/ 修改其中的nginx.conf文件(也可以使用命令来编辑)

将其中的server段替换成下面的配置

	server {
listen 80;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}

最后使用命令: systemctl restart nginx 重启Nginx

输入之后发现出现502 Bad GateWay.....

这个问题找了我好久...结果发现是因为Linux保护机制所导致,我们需要将nginx添加至Linux的白名单

输入以下命令:

yum install policycoreutils-python

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

sudo semodule -i mynginx.pp

再尝试访问:

到现在基本部署完成了。

问题:我们会发现重启CentOs之后Nginx需要手动启动,下面配置将Nginx改为自启动:

使用命令: systemctl enable nginx.service 或者 systemctl enable nginx

使用命令: systemctl is-enabled nginx 来确认是否设置成功

可能出现的问题:

1.如果在Windows下出现访问不了的情况(FlashFXP/Putty连接不上),可以重启下CentOs虚拟机

.net core 2.0学习笔记(二):部署到Windows和Liunx系统的更多相关文章

  1. 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

    不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...

  2. 一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx、supervisor、mysql环境搭建

    作为.neter,看到.net core 2.0的正式发布,心里是有点小激动的,迫不及待的体验了一把,发现速度确实是快了很多,其中也遇到一些小问题,所以整理了一些学习笔记: 阅读目录 环境说明 安装C ...

  3. .net core 2.0学习笔记(一):开发运行环境搭建

    期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...

  4. net core 2.0学习笔记(一):开发运行环境搭建 (转)

    期待已久的.net core 2.0终于发布了!大家等的花儿都谢了. 不过比预期提前了一个多月,这在微软历史上还真的不多见.按照历史经验看,2.0版本应该比较靠谱,我猜这也是社区非常火爆的原因吧.下面 ...

  5. dotnet Core 2.0学习笔记(一)

    一:Dotnet Core Windows运行环境,标红部分要注意 https://docs.microsoft.com/en-us/dotnet/core/windows-prerequisites ...

  6. .net core 2.0学习笔记(五):程序配置&ConfigurationManager

    配置组件是.net framework中非常常用的功能.在创建.net framework 工程时,系统不仅会自动生成app.config文件,而且还提供了非常强大的访问类库.但是这些好东西,在.ne ...

  7. .net core 2.0学习笔记(二):Hello World & 进阶

    官网已经有一个.net core的入手教程(https://www.microsoft.com/net/core#windowscmd),但这个教程完全没有顾及全宇宙第一IDE的感受.今天就跟大家体验 ...

  8. .net core 2.0学习笔记(四):迁移.net framework 工程到.net core

    在迁移.net core的过程中,第一步就是要把.net framework 工程的目标框架改为.net core2.0,但是官网却没有提供转换工具,需要我们自己动手完成了..net framewor ...

  9. .net core 2.0学习笔记(六):Remoting核心类库RealProxy迁移

    在学习.net core的过程中,我们已经明确被告知,Remoting将不会被支持.官方的解释是,.net framework 类型包含了太多的Runtime的内容,是一个非常重量级的服务实现,已被确 ...

随机推荐

  1. 一次thinkphp框架 success跳转卡顿问题的解决

    近期工作中遇到了一个奇怪的现象:thinkphp框架中一个控制器中执行success或者error跳转的时候,会卡10s甚至更久,而在其他控制器中测试却不会.于是开始着手调试,利用自定义的毫秒函数测试 ...

  2. 流API--初体验

    在JDK8新增的许多功能中,有2个功能最重要,一个是Lambda表达式,一个是流API.Lambda表达式前面我已经整理过了,现在开始整理流API.首先应该如何定义流API中的"流" ...

  3. java注解--Annotation

    Annotation(注释) 概述 从 JDK 5.0 开始, Java 增加了对元数据(MetaData) 的支持, 也就是 Annotation(注释) Annotation 其实就是代码里的特殊 ...

  4. android 中的ExpandableListView取消一级图标

    mainlistview = (ExpandableListView) view.findViewById(R.id.listview_myteacher); mainlistview.setGrou ...

  5. js中的一元加法和一元减法

    大多数人都熟悉一元加法和一元减法,它们在 ECMAScript 中的用法与您高中数学中学到的用法相同. 一元加法本质上对数字无任何影响: var iNum = 20; iNum = +iNum; al ...

  6. 【转】判断点在多边形内(matlab)

    inpolygon -Points inside polygonal region Syntax IN = inpolygon(X,Y,xv,yv)[IN ON] = inpolygon(X,Y,xv ...

  7. Spring MVC的DispatcherServlet

    Spring MVC提供了一个名为org.springframework.web.servlet.DispatcherServlet的Selvet充当前端控制器,所有的请求驱动都围绕这个Dispatc ...

  8. 如何设置select和option的文字居中?

    今天在设置option文字居中时发现,给select设置text-align:center在火狐浏览器下ok,但是在chrome浏览器无效,然后option在两个浏览器下设置text-align:ce ...

  9. iOS-Mac配置Tomcat【Mac环境配置Tomcat】

    Tomcat配置 1.官网下载Tomcat配置包:http://tomcat.apache.org/download-70.cgi 2.下载之后,将解压后的的整个文件夹重新命名:ApacheTomca ...

  10. mybatis No enum const class org.apache.ibatis.type.JdbcType.Integer

    mybatis报错:没有Integer这个类型的jdbcType值 原因:mybatis配置重的jdbaType类型要是大写的 如图所示: