从零开始学习ASP.NET CORE(一) 进程内托管和进程外托管

新建一个空ASP.NET.CORE项目,我这边是建了一个名为WebApplication3的项目
双击项目名,可以看到.csproj文件的内容

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

  <PropertyGroup>
	<AspNetCoreHostingModel>OutofProcess</AspNetCoreHostingModel>//注意看这一行
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UserSecretsId>f6b80e92-86de-489f-bfb7-d91071f61c12</UserSecretsId>
  </PropertyGroup>

</Project>

可以看到注释那一行的内容,其中OutofProcess可以换成InProcess,两者为程序不同的托管形式

InProcessOutofProcess
InProcess的值指定我们想要使用进程内托管模型OutofProcess的值指定我们要使用进程外托管
1个web服务器有2个或者1个web服务器-内部Web服务器和外部Web服务器
IIS服务器,CreateDefaultBuilder()方法调用UseIIS()方法并在IIS工作进程IIS.exe内托管应用程序内部web服务器为Kestrel,外部Web服务器为IIS,Nginx或者Apache

下面开始展示如何获取不一样的托管形式
将startup.cs文件中的Configure方法改为如下,这里是为了我们通过返回进程名来判断目前的托管形式

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

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

下图为IDE中不同的运行方式,一个是IIS Express,一个是WebApplication3(项目名)
在这里插入图片描述
通过更换.csproj文件里面的配置和更换运行方式,两两组合,得到四种不一样的结果
当返回iisexpress的时候为进程内托管
当返回WebApplication3为进程外托管

1、IIS Express运行,配置为InProcess,进程内托管,其中iisexpress是在vstudio开发环境下轻量级的iis,将程序交付于其托管
在这里插入图片描述
在这里插入图片描述
2、WebApplication3运行,配置为OutofProcess,这边是将程序依托给Kestrel进程进行托管,为进程外托管
在这里插入图片描述
在这里插入图片描述

3、WebApplication3运行,配置为InProcess,这种情况下为自动将InProcess配置忽略掉,等同于注释掉那一行代码,.csproj里面没有配置时,默认为OutOfProcess,此时等同于2的形式
在这里插入图片描述
4、IIS Express运行,配置为OutofProcess,进程外托管,这个做了一个反向代理,先是交付于Kestrel进行自己承载自己的请求,然后中间加了一个iis的反向代理,其实本身是进程外托管了,只是中间再加一个反向代理
在这里插入图片描述
在这里插入图片描述

进程内进程外
进程名称“iisexpress.exe”进程名称“WebApplication.exe”

另外补充以一个知识点就是,右键项目打开资源管理文件,上面文件路径输入cmd,打开window命令窗口,直接输入dotnet run,可以摆脱编译器运行应用程序
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值