ASP.NET Core基础系列(三)(托管模型)

ASP.NET Core基础系列(三)(托管模型)

从托管的角度来看,一个ASP.NET Core 应用程序可以通过两种方式托管,即进程托管(InProcess)或进程外托管(OutOfProcess)。

一、InProcess

进程内托管的情况下,只有一个web服务器,即IIS。

在这里插入图片描述

1.1 什么是IIS Express

IIS Express是IIS的轻量级自包含版本。它针对Web应用程序开发进行了优化。值得一提的是,我们仅在开发中使用IIS Express,在生产中,我们一般使用IIS。

1.2 如何设置为InProcess托管

只需修改项目文件即可:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
  </PropertyGroup>

</Project>

此处添加元素并将其值设置为 InProcess,该节点也可以是OutOfProcess。

1.3 将托管模型设置为InProcess时会发生什么

在 InProcess 托管的情况下(即当 CreateDefaultBuilder() 将值视为项目文件中 AspNetCoreHostingModel 元素的 InProcess 时),场景后面的 CreateDefaultBuilder() 方法内部调用 UseIIS() 方法。然后在 IIS 工作程序(即 iIS 的 w3wp.exe 和 Iisxpress.exe 的 IISExpress)中托管应用程序。

1.4 如何确定是否在InProcess进程下执行

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync($"{Process.GetCurrentProcess().ProcessName}");
                });
            });

在这里插入图片描述
然后以IIS Express的方式启动,这样会在Web页面上打印当前进程名称。

在这里插入图片描述

二、OutOfProcess

在这里插入图片描述

在外进程托管的情况下,有2台Web服务器。

  • 一个内部web服务器:称为Kestrel。
  • 一个外部web服务器:可以时IIS、Nginx****或Apache。

2.1 什么是Kestrel Web服务器

ASP.NET Core是一个跨平台框架。这意味着它支持不同类型的操作系统上开发和运行应用程序。Kestrel是ASP.NET Core应用程序的跨平台web服务器,这意味着该服务器支持ASP.NET Core支持的所有平台和版本。默认情况下,它包含在.NET Core应用程序中作为内部Web服务器。

2.2 如何使用kestrel Web服务器运行应用程序

在这里插入图片描述

以项目名称的方式启动程序,如何在我们发现控制台会先启动如何才会打开Web页面。
在这里插入图片描述

三、总结

3.1 使用IIS Express运行应用程序

如果选择IIS Express启动应用程序,则它将使用IIS服务器,并且将使用launchSettings.json文件中提及的URL和端口号。值得一提的是,我们可以看到后台自己启动了IIS Express服务。
在这里插入图片描述
在这里插入图片描述

3.2 使用Kestrel服务器运行应用程序

如果项目名称启动应用程序,首先,它将启动控制台并使用kestrel服务器托管应用程序。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET Core是一个跨平台的开源框架,用于构建Web应用程序。它是ASP.NET的下一代版本,具有更高的性能、更好的可测试性和更大的灵活性。 ASP.NET Core具有以下基础知识: 1. 架构:ASP.NET Core采用了模块化的架构,称为中间件(Middleware)。中间件可以按照需求进行配置和组合,实现各种功能,如路由、身份验证、日志记录等。 2. 跨平台:与传统的ASP.NET不同,ASP.NET Core可以在Windows、Linux和macOS等多个平台上运行。 3. 环境:ASP.NET Core引入了环境概念,可以根据不同的环境(开发、生产等)进行配置和部署。 4. 依赖注入:ASP.NET Core内置了依赖注入容器,可以轻松地进行依赖注入,提高代码的可测试性和可维护性。 5. Razor Pages:Razor Pages是一种新的页面模型,使得开发者可以将HTML标记和后端逻辑组合在一起,简化了开发过程。 6. Web API:ASP.NET Core提供了强大的Web API支持,可以轻松地构建RESTful风格的API。 7. 身份验证和授权:ASP.NET Core提供了丰富的身份验证和授权机制,包括基于Cookie的身份验证、JWT身份验证等。 8. 数据访问:ASP.NET Core可以与各种数据库进行交互,支持多种数据访问技术,如Entity Framework Core、Dapper等。 9. 部署和托管ASP.NET Core应用程序可以以自包含的方式进行部署,可以通过IIS、Docker等进行托管。 以上是ASP.NET Core基础知识,希望对你有所帮助!如果你有更多问题,请继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值