无法在Windows 11新虚拟机的IIS中运行ASP.NET Core应用
排查.NET 8 ASP.NET Core Web API IIS部署404问题的步骤
1. 核对站点物理路径与发布文件
- 确认IIS站点的物理路径指向Visual Studio发布后的
publish文件夹根目录,而非项目源码目录或其他子文件夹。路径错误会导致IIS无法定位API的核心文件。
2. 验证web.config的ASP.NET Core模块配置
打开发布生成的web.config,检查核心配置是否正确:
<system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath=".\WebApplication1.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> </system.webServer>
- 确保
processPath指向的exe文件名与实际文件完全匹配(Windows不区分大小写,但建议严格对应)。 - 若
hostingModel设为outofprocess,需确认端口无冲突,或在web.config中指定了正确的端口绑定。
3. 检查ASP.NET Core模块注册状态
- 打开控制面板 > 程序 > 程序和功能,确认
Microsoft .NET 8.0.26 - Windows Server Hosting已正确安装,若安装异常则重新下载托管包修复。 - 在IIS管理器的模块列表中,确认存在
AspNetCoreModuleV2,缺失则说明托管包安装失败,需重新安装。
4. 启用运行日志定位错误
- 修改
web.config中stdoutLogEnabled为true,确保stdoutLogFile指定的logs文件夹已创建(无则手动新建):
<aspNetCore processPath=".\WebApplication1.exe" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
- 尝试访问API后,查看
logs文件夹下的日志文件,里面会记录exe启动或运行时的具体异常(如依赖缺失、权限不足等)。
5. 确认应用池权限设置
- 确保应用池标识(默认
ApplicationPoolIdentity)对站点物理路径拥有读取和执行权限。右键目标文件夹,选择属性 > 安全,添加IIS AppPool\[你的应用池名称]用户,赋予读取和执行、列出文件夹内容、读取权限。
6. 排查URL重写规则干扰
- 暂时注释web.config中的URL重写规则段,测试是否能正常访问API,错误的重写规则可能导致请求被错误转发。
内容的提问来源于stack exchange,提问作者user3856437
相关产品推荐
相关产品推荐

