NET Core MVC 在linux上的创建及发布

前言

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,愿和各位一起进步!

NET Core MVC 在linux上的创建及发布的更多相关文章

  1. ASP.NET Core MVC 在linux上的创建及发布

    前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲 ...

  2. Linux+.Net Core+Nginx(在Linux上使用Nginx反向代理.Net Core 项目)

    Linux+.Net Core+Nginx 之前的文章中有提到关于使用Nginx在linux来实现反向代理,今天我们继续加点料.在Centos7中部署.NetCore,然后使用Nginx进行反向代理! ...

  3. .net Core 安装在linux上

    1.安装 .net Core 参考官方网站 https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install 2.发布应用程 ...

  4. .Net Core WebApi在Linux上启动和关闭

    测试机器:阿里云云主机1核2g 安装环境:centos-7 服务器:Nginx 1.17.1 测试默认已启动 已安装配置:.Net Core 3.1 测试默认安装 连接配置:x-ftp,x-shell ...

  5. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 11. Views 上

    通常会使用外层模板的view,当做公共的模块 通常叫做_Layout.cshtml views下新建Shared文件夹 主要关注RenderBody,这里会具体渲染Action返回的内容View la ...

  6. <亲测>.NET Core项目在Linux上使用QRCoder时出错"Unable to load DLL 'gdiplus'"

    Centos 7 解决方案如下: yum install libgdiplus-devel

  7. linux上uwsgi+nginx+django发布项目

    在发布项目前首先将部署环境进行搭建,尤其是依赖包一定需要提前安装. 一.虚拟环境的搭建 1.建议在linux下新建一个虚拟环境,这样有独立干净的环境. mkvirtualenv -p python3 ...

  8. asp.net core mvc视频A:笔记6-1.应用发布与部署

    显示:直接使用上节课的项目 一.使用vs发布应用 这里选择发布到文件夹,当然你可以选择其他的发布方式 部署模式:(我的VS里没有这个配置,不知道为啥...视频里有) 1.框架依赖:选择此模式,发布后需 ...

  9. ASP.NET Core MVC 控制器创建与依赖注入

    本文翻译自<Controller activation and dependency injection in ASP.NET Core MVC>,由于水平有限,故无法保证翻译完全准确,欢 ...

随机推荐

  1. OCP prepare 20140628

    1. null if       nvl     nvl2 NULLIF函数 Oracle NULLIF函数语法为NULLIF(表达式1,表达式2),如果表达式1和表达式2相等则返回空值,如果表达式1 ...

  2. @Resource注解(转)

    @Resource 注解被用来激活一个命名资源(namedresource)的依赖注入,在JavaEE应用程序中,该注解被典型地转换为绑定于JNDI context中的一个对象.Spring确实支持使 ...

  3. 小鱼提问3 static方法中可以访问某个类的私有变量吗(不通过反射的其他非正常手段)?什么情况下可以?

    class Student { private string _name; public int Age = 0; public static void Test() { Student stu = ...

  4. hdu 2604Queuing dp+ 矩阵快速幂

    题目链接 给一个长度为n的字符串, 每个字符可以使f或m. 问你不包含子串fmf以及fff的字符串数量有多少. 令0表示mm结尾, 1表示mf, 2表示ff, 3表示fm. 那么 f(n+1, 0) ...

  5. SQLSERVER 使用WITH函数查找时间点最大数据行

      --表结构及数据: DTIME TYPE MONEY 2015-10-14 13:50:35.000 shopping 20 2015-10-21 13:51:24.000 shopping 40 ...

  6. Servlet学习第一天--Servlet开发映射URL配置

    基础不扎实,从头学,认真记录笔记. 感谢@孤傲苍狼:http://www.cnblogs.com/xdp-gacl/p/3760336.html -为什么要配置? 由于客户端是通过URL访问web服务 ...

  7. 谈谈文件增量同步算法:RSYNC和CDC

    谈谈文件增量同步算法:RSYNC和CDC 分类: 数据同步 增量备份 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在研究文件的增量同步问题,着重研究了文件差异编码部分,因为这个其实是文件 ...

  8. PHP学习之数据库操作

    PHP数据库操作: 一.连接数据库 mysql_connect() 例:$link=mysql_connent("localhost","root"," ...

  9. C++赋值运算符、函数调用运算符、下标运算符(“=”、“()”、“[]”)重载

    #include <iostream>#include <assert.h>#include <string.h> using namespace std; cla ...

  10. express中路由设置的坑-----1

    router.get('/commodities/sortable', utils.logged, function (req, res) { Commodity.find({force_top:tr ...