内进程:程序托管于iis里面,只用了一个服务
外进程:程序托管于ke'strel服务器里面,然后可能配合其他的apache、iis、Nginx服务器进行反向代理。
1.asp.net core的默认(csproj里面没有设置的情况下),是外进程。
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
2.如何确定程序使用的是什么进程:var processName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
内进程:iisexpress或者w3wp.exe
外进程:dotnet.exe
3.当配置了InProcess的情况下,用iis启动则是内进程,用dotnet run启动则视为外进程。当配置了OutOfProcess或者不配置的时候,无论使用iis启动还是dotnet run启动都是外进程,使用iis启动可以理解为iis作为了反向代理,用dotnet run可以视为自己作为内部服务器和反向代理结合使用。