安装.NET 8.0托管捆绑包后,应用程序池选项缺失ASP.NET Core 8
解决.NET 8.0 Hosting Bundle在IIS应用程序池不显示的问题
首先明确:.NET 8属于现代.NET(原.NET Core)体系,和传统.NET Framework(2.x/4.x)的IIS托管机制完全不同——它不需要aspnet_isapi.dll,也不会出现在ISAPI和CGI限制列表中,这不是故障,是架构设计差异导致的。
以下是让.NET 8应用在IIS正常运行的配置步骤:
确认Hosting Bundle安装有效性
打开控制面板→程序和功能,确认已安装「Microsoft .NET 8.0 Windows Server Hosting」。若未安装,重新下载安装包执行安装,安装完成后必须重启IIS(或整个服务器),确保相关模块和服务加载生效。检查并注册AspNetCoreModuleV2模块
打开IIS管理器,点击服务器节点→「模块」,确认列表中存在AspNetCoreModuleV2。若缺失,以管理员身份打开命令提示符,运行以下命令手动注册:%windir%\System32\inetsrv\appcmd.exe install module /name:AspNetCoreModuleV2 /image:"%ProgramFiles%\dotnet\aspnetcore\modules\V2\aspnetcorev2.dll"配置应用程序池
.NET 8应用对应的程序池需设置为无托管代码,而非选择.NET版本,步骤如下:- 在IIS管理器中找到目标应用程序池,右键选择「高级设置」
- 在「常规」区域,将「.NET CLR版本」设为「无托管代码」,「托管管道模式」设为「集成」
- 保存设置,将你的.NET 8应用部署到对应站点(发布时需选择适配Windows的运行时,如win-x64)
验证站点处理程序映射
打开站点的「处理程序映射」,确认存在名为AspNetCore的条目,其可执行路径指向%ProgramFiles%\dotnet\dotnet.exe。若缺失,可通过以下命令添加:appcmd.exe set config /section:system.webServer/handlers /+"[name='AspNetCore',path='*',verb='*',modules='AspNetCoreModuleV2',resourceType='Unspecified']" /commit:apphost
完成以上配置后,.NET 8应用即可在IIS下正常运行,无需在应用程序池列表中寻找“.NET 8.0”选项。
内容的提问来源于stack exchange,提问作者Michael Wormald
相关产品推荐
相关产品推荐

