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

ASP.NET Core 2.0 MVC部署IIS后Axios调用接口返回404问题

解决ASP.NET Core 2.0 MVC部署到IIS后API接口404的问题

我完全懂你碰到的这个头疼问题——本地在Visual Studio里跑的时候,axios调用Items/GetUnclaimedItems顺顺当当拿数据,可一部署到IIS就直接报404,偏偏Index视图能正常加载,用Postman测同样的路径也不行。这种情况大多和路由配置或者IIS的反向代理设置有关,咱们一步步来排查解决:

1. 先搞定相对路径的坑

你现在axios用的是相对路径"Items/GetUnclaimedItems",如果部署到IIS后你的站点不是根站点(比如站点挂在http://yourdomain/yourAppName/下面),那这个相对路径就会拼错,变成http://yourdomain/Items/GetUnclaimedItems,自然找不到接口。

建议用ASP.NET的Url.Action来生成绝对正确的URL,在视图里先定义:

<script>
// 用Url.Action生成对应Action的完整路径
const getUnclaimedItemsUrl = '@Url.Action("GetUnclaimedItems", "Items")';
</script>

然后axios调用时用这个变量:

axios.get(getUnclaimedItemsUrl)
.then(function (response) { 
    _this.items = response.data; 
    _this.isBusy = false; 
})
.catch(function (err) { 
    alert("Error getting items. " + err); 
});

这样不管部署在什么层级的站点下,都会生成正确的请求路径,从根源避免路径错误导致的404。

2. 检查IIS的ASP.NET Core模块配置

ASP.NET Core部署到IIS必须依赖ASP.NET Core Module(ANCM),这个模块负责把IIS接收到的请求转发到.NET Core的自托管进程里。如果模块没装对或者配置错了,请求根本到不了你的应用:

  • 确保服务器上安装了ASP.NET Core 2.0 Runtime Hosting Bundle,这个包包含了ANCM,去微软对应版本的下载页面就能找到;
  • 检查站点的应用程序池,一定要设置为无托管代码——因为ASP.NET Core是自己托管的,IIS只是个反向代理,不需要它的托管环境。

3. 给控制器显式加路由特性

虽然你配置了默认路由,但有时候显式指定路由模板会更可靠,避免默认路由的匹配歧义。给你的ItemsController和Action加上路由特性:

[Route("[controller]/[action]")]
public class ItemsController : Controller
{
    [HttpGet]
    public JsonResult GetUnclaimedItems()
    {
        Log.Information("Getting unclaimed items");
        // 你的业务代码...
        return Json(itemsList);
    }
}

这样明确告诉路由系统,这个Action的访问路径就是Items/GetUnclaimedItems,不会出现匹配不到的情况。

4. 确认部署的物理路径正确

有时候部署时不小心把IIS站点的物理路径指向了项目源码目录,而不是发布后的输出目录。检查一下:你的站点物理路径应该指向你发布项目时生成的publish文件夹(发布时选择的输出路径),这个文件夹里包含了运行所需的所有文件。

5. 查日志找线索

你代码里已经加了Log.Information,部署后去看看日志文件,确认GetUnclaimedItems这个Action有没有被命中:

  • 如果日志里没有这条信息,说明请求根本没到达你的应用,重点排查IIS的ANCM配置或者站点路径;
  • 如果有日志但还是返回404,那可能是Action内部的逻辑问题,但这种情况比较少见。

另外,也可以在IIS里开启失败请求跟踪,捕获404请求的详细处理流程,能帮你精准定位到哪一步出了问题。

一般来说,先排查相对路径和ANCM配置这两个点,就能解决大部分这类404问题。

内容的提问来源于stack exchange,提问作者Daniel Jackson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:55:06