• ASP.NET Core 学习笔记(一) 认识ASP.NET Core


      今年一直都在从事C/S端开发,包括目前工作也是使用winform进行UI展示,导致Core的学习一拖再拖,临近年底终于不再懒惰,搞起!

    ASP.NET Core和ASP.NET的简单对比

      首先,ASP.NET Core是开源跨平台的高性能框架,与之前的ASP.NET相比最大的区别肯定就是跨平台了。ASP.NET受制于传统的System.Web库,约束了其未来的发展,依赖与IIS和.NET Framework框架导致ASP.NET不能跨平台(因为IIS和.NET Framework是不能跨平台的,只能部署在window平台)。ASP.NET Core作为微软新一代的主力框架,不是ASP.NET Framework的延申,而是有本质的区别,ASP.NET Core不再是基于传统的System.Web.dll,也不再依赖IIS和windows,而是可以跨所有平台,随心所欲的部署在Windows,Mac或者Linux平台;托管程序也不单单只能使用IIS,Nginx,Apache,Docker等都可以用来进行项目部署。

    ASP.NET Core的web服务器

      ASP.NET Core的web服务器有两种:HTTP.sys和Kestrel。默认使用的是Kesterl服务器。

      HTTP.sys是仅可以运行在Windows平台的Web服务器。Kestrel是跨平台的Web服务器。默认包含在ASP.NET Core项目模板中。

      HTTP.sys服务器是运行在内核态中,因此减少了系统的调用次数,运行效率相较于Kestrel服务器要高,而且HTTP.sys可以作为反向代理服务器来使用,功能非常强大,但是最大的问题是不跨平台,只能运行在Windows下。

      Kestrel服务器运行在ASP.NET Core应用程序中,跨平台且处理网络请求的效率很高。由于ASP.NET Core拥有两种Web服务器,因此也就有两种托管模型:Inprocess(进程内托管)和Outofprocess(进程外托管)。

    ASP.NET Core的托管模型

      Inprocess模型:使用的是IIS工作进程内的服务器(IISHttpServer),将应用程序的工作进程托管到IIS的工作进程内。很明显又不能跨平台了,但是优点是性能相较与Outofprocess更好,在IIS上推荐使用Inprocess。

      Outofprocess模型:将web请求转发到Kestrel服务器后端的ASP.NET Core应用。使用该模型时,必须要手动该配置文件,web.config文件中将节点aspNetCore.hostingModel的值设置为:outofprocess。设置这个值的目的就是告诉IIS,当前程序不使用IISHttpServer,而是使用kestrel服务器。

      

  • 相关阅读:
    Fedora 23 配置
    小小的告别一下这个博客
    markdown测试
    ihhh题解
    【BZOJ】1998: [Hnoi2010]Fsk物品调度
    【BZOJ】2563: 阿狸和桃子的游戏
    【BZOJ】3712: [PA2014]Fiolki
    【BZOJ】2333: [SCOI2011]棘手的操作
    我的vimrc
    Ubuntu Gnome 14.04.2 lts 折腾笔记
  • 原文地址:https://www.cnblogs.com/haley24/p/11853483.html
Copyright © 2020-2023  润新知