前言
ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲试,准备搞一下ASP.NET Core mvc的创建和部署,于是便有了这篇文章,希望能够帮助到你。
环境准备
这是我的开发环境,使用的nginx是nginx 1.6.3 直接yum install,然后需要安装dotnet环境,可以参照官网教程https://www.microsoft.com/net/core#centos
然后使用yeoman创建一个asp.net core 项目 具体见官网https://aspnet-aspnet.readthedocs-hosted.com/en/latest/client-side/yeoman.html,因为我不知道如何通过dotnet指令创建aspnet core mvc项目,只好使用了这个。(后来找到了dotnet new -t web,这个指令也是创建mvc web项目的,可见我当时是多傻)
创建第一个web项目
mkdir demo1
cd demo1
dotnet new -t web
会在demo1目录下生成一个web项目
来看一下project.json
里面是一些项目依赖和build,publish以及runtime的选择项。可以看到Microsoft.AspNetCore.Server.Kestrel,它是依赖Kestrel来监听web的请求的。
执行dotnet restore 这个指令主要是寻找当前目录下的项目文件(project.json),然后利用NuGet库还原整个项目的依赖库,然后遍历每个目录,生成项目文件,继续还原该项目文件中的依赖项
然后实验一下 dotnet run
这里是我修改了他的绑定地址为http://*:5000,因为默认的是localhost:5000,但是在外网访问的时间是会有问题,,查了一下资料说是IP6和IP4的原因,所以使用了*,在Program.cs中使用UseUrls("http://*:5000")
然后浏览器访问看一下效果:
然后我又做了nginxd的反向代理,yum install nginx,然后修改配置文件
然后执行 nginx -s reload 重启nginx配置,接着启动ASP.NET CORE 程序,向浏览器输入121.42.184.123,结果如下:
至此,asp.net core程序在linux上测试成功,可以继续执行dotnet publish指令给程序打包发布,打包之后会生成一个publish文件夹:
在浏览器访问结果一样。心情莫名激动,装载大微软。
尝试着用supervisord管理ASPNET CORE项目的进程,但是由于配置问题没搞好,周六抽空研究一下,接下来准备研究一下ASPNET CORE项目的源码。后续学习也会一并写出来,希望和大家一起进步,社区最近的活跃度让我对.NET充满了希望。愿和各位一起加油。
参考资料 :https://aspnet-aspnet.readthedocs-hosted.com/en/latest/client-side/yeoman.html
https://aspnet-aspnet.readthedocs-hosted.com/en/latest/
.NET学习技术交流群:226704167,愿和各位一起进步!