您的位置:首页 > 编程语言 > ASP

跨平台运行ASP.NET Core 1.0(转载)

2016-04-17 20:38 686 查看
前言
首先提一下微软更名后的叫法:

ASP.NET 5 更名为 ASP.NET Core 1.0

.NET Core 更名为 .NET Core 1.0  

Entity Framework 7 更名为 Entity Framework Core 1.0 或者简称 EF Core 1.0

现在伴随着ASP.NET Core 1.0 RC2版的更新速度,许多官方文档都跟不上,还停留在RC1版的使用方式上(RC1版是继Beta版之后第一个发布的稳定版本)。RC1和RC2的区别在于RC1 版使用dnvm、dnx来restore packages和run(dnu是包含在dnx中的),而RC2版会基于.NET Core CLI,使用dotnet命令来进行building,compiling, NuGet package management, running, testing。如果想了解更多ASP.NET Core 1.0 的发布进度和里程碑可以查看:ASP.NET Core 1.0 Schedule and Roadmap。就目前而言,在某些系统中我们已经可以遗弃mono,只使用.NET Core 和.NET Core CLI 就可以提供对.Net程序进行生成编译运行环境(同时包含.NET Core 和.NET Core CLI的.NET Core SDK二进制包,可以在这里下载)。至于mono的未来,微软的SocttHunter和Scott Hasnselman说到:切换到MIT开源许可协议的mono将作为公司未来构建一个统一.NET库的计划中的一部分,了解详情。可见开源的mono会逐步融入.NET Core体系中。

.NET Core SDK=.Net Core+.NET Core command-line(简称CLI\.NET CLI\.NET Core CLI,dotnet commands)

.NET Core=基础类库.NET Core Framework(CoreFX)+运行时.NET Core Runtime(CoreCLR)+编译器管理(如管理编译器Roslyn)+More

本文章主要介绍ASP.NET Core 1.0 RC2版的跨平台部署,(【部署环境】作为第一步,有助于理解程序的运行环境和机理)。如果想了解跨平台部署RC1版,请查看

Installing ASP.NET 5 On Cross-Platform

Running ASP.NET 5 applications in Linux Containers with Docker

.NET Core + ASP.NET Core 1.0 RC1 bits

下面会分别介绍在Dokcer、CentOS、Ubuntu环境中的部署方式,Windows比较简单,就不作介绍。运行的ASP.NET Core程序以cli-samples的HelloMvc为例。

一、在Docker中运行

1、环境

这里演示的Docker宿主机环境是CentOS7,下面介绍Docker在CentOS7上的安装。在其他系统中安装Docker,请查看Install Docker Engine
提示:CentOS在7中已经启用firewalld作为新的防火墙,替换掉原先的iptables。而Docker对firewalld的兼容性虽然不太好,但对下面的例子运行中暂时没发现有影响。

systemctl status firewalld或firewalld.service  ##查看firewalld是否启动。active(running)代表启动
systemctl start firewalld  ##如果firewalld没启动,可以使用此命令启动
systemctl enable firewalld  ##设置为随机器启动
systemctl stop firewalld  ##关闭firewalld
systemctl disable firewalld ##清除随机器启动
systemctl restart firewalld ##重启firewalld


systemctl status firewalld或firewalld.service  ##查看firewalld是否启动。active(running)代表启动
systemctl start firewalld  ##如果firewalld没启动,可以使用此命令启动
systemctl enable firewalld  ##设置为随机器启动
systemctl stop firewalld  ##关闭firewalld
systemctl disable firewalld ##清除随机器启动
systemctl restart firewalld ##重启firewalld


2、防火墙firewalld常用命令

firewall-cmd --state           ##查看防火墙状态,是否是running
firewall-cmd --list-all         ##查看所有规则
firewall-cmd --reload         ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones   ##列出支持的zone
firewall-cmd --get-services##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp  ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent##永久开放ftp服务
firewall-cmd --add-service=http --permanent##永久开放http服务
firewall-cmd --remove-service=ftp --permanent##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent  ##永久添加80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent   ##--zone #作用域


iptables -L -n  --line-number     #查看防火墙的规则链
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -I INPUT -d 172.16.100.1 -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT              #测试不加此条会导致mysql在内部无法连接

查看/etc/sysconfig/iptables文件(记录着防火墙的规则链)
如果没有这个文件,请执行下面命令保存
iptables-save > /etc/sysconfig/iptables
查看保存后的规则
cat /etc/sysconfig/iptables


netstat -tunlp -a # 查看所有网络端口情况
netstat -l -n  #查看监听(Listen)的端口,-n 代表显示端口数字而不是名称
netstat -antp #查看所有建立的TCP连接


netstat -tunlp -a # 查看所有网络端口情况
netstat -l -n  #查看监听(Listen)的端口,-n 代表显示端口数字而不是名称
netstat -antp #查看所有建立的TCP连接


相关资料:

Getting started with .NET Core

Running ASP.NET 5 applications in Linux Containers with Docker

Get Started with Docker Engine for Linux

.NET CLI Preview Docker Image

Installing ASP.NET 5 On Linux

Docker Dockerfile详解

最新版dotnet-cli下的ASP.NET Core和asp.net mvc【RC2尝鲜】

ASP.NET Core 1.0 Hello World

CentOS 7.1下安装dotnet core

作者:B.it
出处:http://www.cnblogs.com/ImBit/p/5375577.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: