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

使用IIS启动ASP.NET Core应用时API控制器是否可正常运行?

问题结论与排查方案

通过IIS启动带API控制器的ASP.NET Core项目本身不存在任何兼容性问题,404错误可按以下方向逐一排查:

  • 检查服务与中间件配置:如果此前项目仅使用SignalR,大概率漏加了控制器相关的注册逻辑。.NET 6及以上版本的Program.cs中需要补充两处配置:
    1. 服务注册阶段添加:builder.Services.AddControllers();
    2. 中间件管道配置阶段添加:app.MapControllers();,注意该配置需要放在app.UseRouting()之后、app.Run()之前,和现有app.MapHub<>的配置平级即可。
  • 校验请求URL:你当前控制器的路由配置为[Route("api/[controller]")],MessagesController对应的路由前缀为api/Messages,GET请求的完整地址应为{你的站点根地址}/api/Messages,注意检查拼写、端口号、路径前缀是否和实际请求的一致。
  • 确认控制器可被扫描:确保控制器类的访问修饰符为public,没有添加[NonController]等阻止扫描的特性,你当前贴出的代码符合要求,可再确认实际运行的代码有没有误改。
  • IIS托管配置校验:
    • 确认服务器上已安装和项目.NET版本匹配的ASP.NET Core Hosting Bundle,安装后需要重启IIS才会生效
    • 确认站点对应的应用池.NET CLR版本设置为无托管代码

你代码中MessagesController构造函数注入的DataContext未在Action中使用,该问题不会导致404,若后续路由通了之后报500错误可再处理该冗余代码即可。

内容的提问来源于stack exchange,提问作者יוני ארליך

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:45:03