內進程:程序託管於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可以視爲自己作爲內部服務器和反向代理結合使用。