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

Ubuntu 20.04运行.Net项目GET请求返回404状态码问题咨询

.NET项目Ubuntu 20.04环境GET 404问题排查方案

1. 检查服务监听配置

  • 查看进程启动时的控制台输出,确认服务是否真的监听了https://localhost:5001,部分Linux环境默认仅绑定http://0.0.0.0:5000,未启用HTTPS监听,此时访问5001端口就会返回404
  • 检查Program.cs/Startup.cs中的端口、HTTPS重定向规则,Windows环境会自动加载本地开发HTTPS证书,Linux环境如果未配置证书可能会跳过HTTPS端口绑定
  • 可在启动时显式指定端口验证:dotnet run --urls "https://localhost:5001;http://localhost:5000"

2. 排查大小写敏感性问题

  • Linux文件系统是大小写敏感的,Windows是大小写不敏感的,如果项目静态文件路径、路由模板的大小写和实际定义不一致,Windows下可正常匹配,Linux下就会返回404
  • 检查wwwroot目录下的文件、文件夹名称大小写,以及路由配置的大小写,比如定义的路由是/Home,但实际请求/home在Linux下会匹配失败
  • 可添加路由小写化配置规避问题:在Program.cs中添加builder.Services.AddRouting(options => options.LowercaseUrls = true);

3. 检查默认页、中间件顺序配置

  • 如果未显式配置默认静态页,Linux环境访问根路径/可能无法自动识别index.html/default.html等默认页返回404
  • 确认默认页中间件配置顺序要早于静态文件中间件:
app.UseDefaultFiles();
app.UseStaticFiles();

4. 检查目录权限配置

  • 确认运行dotnet进程的用户对项目目录、wwwroot目录有可读权限,Linux下权限不足时服务无法读取静态文件、路由配置文件,也会返回404
  • 可执行sudo chmod -R 755 你的项目目录临时放开权限测试,若访问恢复正常,再按需调整对应目录的权限配置

5. 检查HTTPS证书配置

  • .NET在Linux环境默认未安装本地开发HTTPS证书,如果项目配置了强制HTTPS,可能会因为证书校验失败导致请求处理异常返回404
  • 可先尝试访问HTTP端口5000,如果返回200,执行dotnet dev-certs https --trust安装本地开发证书后再测试HTTPS端口即可

内容的提问来源于stack exchange,提问作者Sandeep Prajapati

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 16:36:08