You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.01 18:12:28