Asp.net core 在.net core 3.1发布后,hostingModel=";“进程内”;始终显示在web.config中,导致无法正常浏览

Asp.net core 在.net core 3.1发布后,hostingModel=";“进程内”;始终显示在web.config中,导致无法正常浏览,asp.net-core,asp.net-core-mvc,asp.net-core-webapi,asp.net-core-3.1,.net-core-3.0,Asp.net Core,Asp.net Core Mvc,Asp.net Core Webapi,Asp.net Core 3.1,.net Core 3.0,在.net core 2.1发布后,hostingModel=“inprocess”不会出现在web.config中,没有问题 在.net core 3.1发布后,删除hostingModel=“inprocess”,您可以正常浏览 问是什么原因造成的,我想解决这个问题 <aspNetCore processPath="dotnet" arguments=".\NewDeBao.OfficeApplication.dll" stdoutLogEna

在.net core 2.1发布后,hostingModel=“inprocess”不会出现在web.config中,没有问题

在.net core 3.1发布后,删除hostingModel=“inprocess”,您可以正常浏览

问是什么原因造成的,我想解决这个问题

 <aspNetCore processPath="dotnet" arguments=".\NewDeBao.OfficeApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />

据我所知,在asp.net core 2.2之前,asp.net core应用程序运行在独立于IIS工作进程的进程中,该模块还处理进程管理。asp.net核心应用程序正在Kestrel上运行

但是从2.2开始,asp.net核心模块为IIS使用进程内服务器实现。针对.NET Framework的ASP.NET核心应用程序不支持进程内托管模型。我想这可能导致了你的问题

要解决此问题,您可以尝试将asp.net core托管为进程外的asp.net core 2.1

有关详细信息,请参阅下面的web.config设置:

 <aspNetCore processPath="dotnet" arguments=".\NewDeBao.OfficeApplication.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="OutOfProcess" />

如果要保留2.1的旧行为,请更新
csproj
文件,将托管模型设置为
OutOfProcess


:

进程内托管比进程外托管提供了更好的性能,因为请求不会通过环回适配器代理,环回适配器是一种将传出网络流量返回到同一台机器的网络接口

根据您的设置,您可能希望也可能不希望在进程中使用IIS。但因为“无法正常浏览”而选择退出流程对我来说似乎不是个好主意:)