.Net Core 简化版启动流程、常见启动方式、请求/响应流程

前言–为什么要使用.Net Core

  首先.Net Core与.NET Framework 对比
  1. 组件化开发 vs 全家桶
  2. 跨平台 vs 基于windows
  3. 高性能 vs 性能相对较低
  4. 开源 vs 不开源
在这里插入图片描述
  
   未来2-3年内,.NET5会统一 .Net Core和.NET Framework(一起期待这一天)
在这里插入图片描述

一. 启动流程

  所有的ASP.NET Core程序本质上也是一个控制台程序,使用Program的Main方法作为程序的入口。
控制台Main入口–>IWebHostBuilder–>IWebHost–>Run,发现本质上就是启动一个作为宿主的Host。

在这里插入图片描述
  从上图中我们可以看出CreateDefaultBuilder()方法主要干了六件大事:

  1. UseKestrel: 使用Kestrel作为Web server。
  2. UseContentRoot: 指定Web host使用的contentroot(内容根目录),比如Views。默认为当前应用程序根目录。
  3. ConfigureAppConfiguration: 设置当前应用程序配置。主要是读取 appsettinggs.json配置文件、开发环境中配置的UserSecrets、添加环境变量和命令行参数 。
  4. ConfigureLogging: 读取配置文件中的Logging节点,配置日志系统。
  5. UseIISIntegration: 使用IISIntegration 中间件。
  6. UseDefaultServiceProvider: 设置默认的依赖注入容器。创建完毕WebHostBuilder后,通过调用UseStartup()来指定启动类,来为后续服务的注册及中间件的注册提供入口,并构建请求中间件管道。

  更详细的解释请访问以下链接:https://blog.csdn.net/WuLex/article/details/81942623

二. 几种启动方式

   先解释一下为什么.net Core能够跨平台: Asp.NetCore本质是个控制台—运行起来是个网站—内置了一个Kestrel服务器(IIS服务器是基于windows系统—有了Kestrel服务器,程序就能脱离对IIS的依赖,才能做到跨平台)
在这里插入图片描述
  注意: 因为Kestrel相对较新,对抵御安全攻击至今还没有一个完整的功能补充。安全性处理包括但不限于适当的超时,大小的限制,以及并发连接限制等问题。
  所以出于安全性的考虑,如果你将你的应用部署在公共网络上,我们建议你使用IIS,Nginx或者Apache作为反向代理服务器。一个反向代理服务器接收来自网络的HTTP请求并且在经过一些初步处理后将请求传递到Kestrel服务器。
在这里插入图片描述

(1)命令行启动

  假设项目名为 MvcCoreTest
  在项目的 \bin\Debug\netcoreapp3.1目录下输入cmd并回车
输入:dotnet MvcCoreTest.dll --urls=“http://*:5177” --ip=“127.0.0.1” --port=5177

在这里插入图片描述

(2)IIS反向代理启动

  如果还在调试阶段,直接F5,
  如果需要部署到IIS,请参考链接: .NET Core项目+华为云+Windows Server2019+IIS部署.

三. 请求/响应流程

在这里插入图片描述

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值