ASP.Net Core 进程内(InProcess)托管
- CreatDefultBuilder() 执行的一些任务
- 设置Web服务器
- 加载主机和应用程序配置表信息
- 配置日志记录
ASP.NET Core 应用程序的托管形式
- 在InProcess(进程内托管)或者
- OutOfProcess(进程外托管)
ASP.NET Core 进程内(InProcess)托管
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
- 在InProcess托管的情况管辖,CreatDefaultBuilder()方法调用UserIIS()方法并在IIS工作进程(w3wp.exe或iisexpress.exe)内托管应用程序。
- 从性能的角度来看,InProcess托管比OutProcess托管提供了更高的请求吞吐量
- 获取执行应用程序的进程名称
var processName = System.Diagnostics.Process.GetCurrentProcess().ProcessName;
ASP.NET Core 进程外(OutProcess)托管
- 什么是OutProcess托管
- 有2个web服务器 - 内部Web服务器和外部Web服务器。
- 内部Web服务器是Kestrel
- 外部Web服务器可以是IIS,Nginx或Apache
- 什么是Kestrel Web Server?
- Kestrel 是ASP.NET Core的跨平台web服务器
- Kestrel 本身可以用作边缘服务器
- Kestrel 中英语托管应用程序的进程是 dotnet.exe
进程内(InProcess)和进程外(OutProcess)托管的对比
- 进程内
- 进程名称 “ w3wp.exe ” 或 “ iisexpress.exe ”
- 只有一个服务器
- 性能更好
- 进程外
- 进程名称 “ dotnet.exe ”
- 两台服务器
- 在内部和外部Web服务器之间代理请求的损耗