你的位置:首页 > 软件开发 > ASP.net > 跨平台运行ASP.NET Core 1.0

跨平台运行ASP.NET Core 1.0

发布时间:2016-04-15 17:00:04
前言首先提一下微软更名后的叫法:ASP.NET 5 更名为 ASP.NET Core 1.0.NET Core 更名为 .NET Core 1.0  Entity Framework 7 更名为 Entity Framework Core 1.0 或者简称 ...
前言      现在伴随着get='_blank'>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体系中。  

1、环境

这里演示的Docker宿主机环境是CentOS7,下面介绍Docker在CentOS7上的安装。在其他系统中安装Docker,请查看Install Docker Engine 跨平台运行ASP.NET Core 1.0

2、安装docker

首先查看CentOS的内核版本(CentOS7系统必须为64位,内核必须3.10及以上)

uname -r3.10.0-229.el7.x86_64
curl -fsSL https://get.docker.com/ | sh

 

4、 docker相关概念

container:容器,用来加载各种image,可以看成操作系统。加载各种app。允许多个容器同时运行,并且容器一般无法相互访问宿主服务器资源,除非挂载数据卷volume之类的,数据卷的使用可以参照:http://my.oschina.net/guol/blog/271225)。容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。跨平台运行ASP.NET Core 1.0跨平台运行ASP.NET Core 1.0
docker images //显示所有镜像文件docker ps -q -a //显示所有容器docker run -it --name dn_container -d -p 5000:5000 microsoft/dotnet:latest //新增一个容器用于加载 microsoft/dotnet:latest镜像文件,-p host port:container portdocker run -it --name dn_container -d -p 127.0.0.1:5000:5000 microsoft/dotnet:latestdocker start dn_container //启动容器docker attach dn_container //关联并进入启动容器,需要先启动容器docker stop dn_container //停止容器docker kill $(docker ps -a -q) //强制停止所有容器docker rm $(docker ps -a -q) //删除所有容器doker commit ContainerID NewImageName //将容器里的内容提交为新的镜像文件docker rmi -f 7d9495d03763 //删除所有容器//标记镜像,push到Docker Hubdocker imagesdocker tag a66b7258f574 sobit17/sobit-dotnet:1.0.0-beta-002252docker imagesdocker login --username=test --email=test@qq.comdocker push sobit17/sobit-dotnet
5.1 首先安装git,克隆cli-samples下来可以从上级目录cli-samples中拷贝一个NuGet.config到HelloMvc目录中,如果没有这个NuGet.config 在还原package时会默认到.nuget/NuGet/加载NuGet.config。因为源不对,会导致某些packeage下载不到。5.2.2创建Dockerfile文件 跨平台运行ASP.NET Core 1.0跨平台运行ASP.NET Core 1.0 
FROM microsoft/dotnet:0.0.1-alpha-onbuild RUN sudo apt-get -y update \  && sudo apt-get install -y dialog make automake libtool curl RUN curl -sSL https://github.com/libuv/libuv/archive/v1.8.0.tar.gz | sudo tar zxfv - -C /usr/local/src \  && cd /usr/local/src/libuv-1.8.0 \  && sudo sh autogen.sh \   && sudo ./configure \   && sudo make \   && sudo make install \   && sudo rm -rf /usr/local/src/libuv-1.8.0 \   && cd ~/ \   && sudo ldconfig EXPOSE 5600
执行下面命令加载dotnet image,且一般会自动启动test_container并进入到image内部环境中,如果你服务器上没有dotnet image,下面命令也会自动下载如果test_container未启动,则执行下面命令启动并关联进入

# docker start dotnet_container # dokcer attach dotnet_container 
dotnet --version或dotnet --info
  
  • 编译试运行:docker run --rm -w /webapp hellomvc-image
  • 运行:docker run -t --name web_container -d -p 5100:5600  hellomvc-image
     跨平台运行ASP.NET Core 1.0跨平台运行ASP.NET Core 1.0

1、环境

这里演示的环境是CentOS7,64bit
PATH=~/dn_cli:$PATH 

3、下载cli-samples的HelloMvc例子

 跨平台运行ASP.NET Core 1.0
打开浏览器 http://IP:5600(防火墙和查看网络相关命令请查看本篇文章第四点)三、在Ubuntu 14.04中运行
跨平台运行ASP.NET Core 1.0
3、编译运行HelloMvc跨平台运行ASP.NET Core 1.0跨平台运行ASP.NET Core 1.0
systemctl status firewalld或firewalld.service ##查看firewalld是否启动。active(running)代表启动systemctl start firewalld ##如果firewalld没启动,可以使用此命令启动systemctl enable firewalld ##设置为随机器启动systemctl stop firewalld ##关闭firewalldsystemctl disable firewalld ##清除随机器启动systemctl restart firewalld ##重启firewalld
跨平台运行ASP.NET Core 1.0跨平台运行ASP.NET Core 1.0
firewall-cmd --state      ##查看防火墙状态,是否是runningfirewall-cmd --list-all     ##查看所有规则firewall-cmd --reload     ##重新载入配置,比如添加规则之后,需要执行此命令firewall-cmd --get-zones  ##列出支持的zonefirewall-cmd --get-services##列出支持的服务,在列表中的服务是放行的firewall-cmd --query-service ftp##查看ftp服务是否支持,返回yes或者nofirewall-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 #作用域
3、防火墙iptables常用命令跨平台运行ASP.NET Core 1.0跨平台运行ASP.NET Core 1.0
netstat -tunlp -a # 查看所有网络端口情况netstat -l -n #查看监听(Listen)的端口,-n 代表显示端口数字而不是名称netstat -antp #查看所有建立的TCP连接

相关资料:

  • Running ASP.NET 5 applications in Linux Containers with Docker
  • Installing ASP.NET 5 On Linux
  • Docker Dockerfile详解
  • 最新版dotnet-cli下的ASP.NET Core和asp.net mvc【RC2尝鲜】
  • ASP.NET Core 1.0 Hello World

 

 

作者:B.it

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:跨平台运行ASP.NET Core 1.0

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。