使用IIS托管ASP.NET Core 6应用遇默认文档/目录列表错误求助
解决ASP.NET 6 IIS托管提示缺少默认文档的问题
检查站点web.config的模块配置
确认web.config中AspNetCoreModuleV2的拦截规则是否覆盖所有请求,正确配置示例:<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath=".\YourApp.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> </system.webServer> </location> </configuration> 核心是`path="*"`,确保所有请求都转发到ASP.NET Core应用,而非让IIS自行查找默认文档。确认应用池的托管管道模式
除了设置为No Managed Code,必须将应用池的托管管道模式设为集成模式,经典模式会导致AspNetCoreModuleV2无法正常拦截请求。验证ASP.NET Core Hosting Pack状态
打开命令提示符运行dotnet --list-runtimes,确认Microsoft.AspNetCore.App 6.0.10存在;同时在IIS管理器的“模块”列表中,确认AspNetCoreModuleV2处于启用状态。检查应用的路由配置
确认Program.cs中已配置根路径可响应的端点,比如:// Minimal API 示例 app.MapGet("/", () => "Home Page"); // MVC 示例 app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");确保应用本身能处理根路径请求,避免因无对应路由导致IIS fallback到默认文档查找逻辑。
启用日志排查启动问题
将web.config中stdoutLogEnabled设为true,访问站点后查看应用目录下logs文件夹的日志,确认应用是否正常启动、有无初始化错误,以此区分是IIS配置问题还是应用自身启动异常。
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

