在IIS中托管.NET核心web应用程序时,以下两者之间的优缺点是什么;“正在进行中”;及;“进程外”;托管模型

在IIS中托管.NET核心web应用程序时,以下两者之间的优缺点是什么;“正在进行中”;及;“进程外”;托管模型,iis,.net-core,backend,Iis,.net Core,Backend,在IIS中托管.NET核心web应用程序时,可以在进程内托管模型和进程外托管模型之间进行选择 除了使用进程内托管模式可以提高性能外,“进程内”托管模式和“进程外”托管模式的优缺点是什么 对于测试/开发与生产,一个比另一个好吗 我认为“进程外”托管模型更容易附加调试器。由于ASP.NET Core 3.0,“进程内”是默认值,请参阅。在IIS.ASP.NET核心模块上托管web应用程序时,会将请求转发到IIS HTTP服务器(IISHttpServer)。IIS HTTP服务器是与IIS一起运行的

在IIS中托管.NET核心web应用程序时,可以在进程内托管模型和进程外托管模型之间进行选择

除了使用进程内托管模式可以提高性能外,“进程内”托管模式和“进程外”托管模式的优缺点是什么

对于测试/开发与生产,一个比另一个好吗

我认为“进程外”托管模型更容易附加调试器。

由于ASP.NET Core 3.0,“进程内”是默认值,请参阅。在IIS.ASP.NET核心模块上托管web应用程序时,会将请求转发到IIS HTTP服务器(IISHttpServer)。IIS HTTP服务器是与IIS一起运行的进程内服务器

如果使用进程外托管模型,则不会使用IIS HTTP服务器。相反,Kestrel web服务器用于处理您的请求

发件人:

“进程中”提供了更好的性能,并且通常资源密集度较低,因为它避免了IIS和Kestrel之间的额外网络跳跃,并在需要监控的机器上维护额外的进程

在某些情况下,可能需要进程外托管,例如用于故障排除和调试出现故障的服务器(例如,您可以在启用控制台日志记录的情况下运行),或者如果您希望在同一应用程序的不同部署(无论是在Windows还是Linux上)之间100%兼容,因为Kestrel是在所有平台上处理HTTP请求的主要机制

对于InProcess模型,您没有使用Kestrel,而是使用一个定制的IISHttpServer实现,它直接与IIS的请求管道接口


但对于大多数意图和目的,我认为在IIS上运行进程内托管是一种可行的方法,除非您有非常特殊的需要,需要Kestrel和进程外托管。

当您可以使用进程内托管时,请使用它。我想知道为什么您认为将调试器附加到进程外更容易,因为在这两种情况下,您只是找到了要附加的正确进程。