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

Ubuntu 20.04中DotNet 8 Swagger正常但API报内部服务器错误求助

解决DotNet API部署后接口500错误的排查步骤

1. 配置Nginx详细代理日志

你的Nginx配置未指定专属应用日志,且默认日志路径并非你查看的/var/www/log/error.log。Ubuntu系统Nginx默认日志目录为/var/log/nginx/,修改server配置添加专属日志:

server {
    listen        80;
    server_name www.mysite.com; # 替换为实际域名,比通用的_更精准
    access_log /var/log/nginx/myapi_access.log; # 记录所有请求日志
    error_log /var/log/nginx/myapi_error.log warn; # 记录Nginx错误,级别设为warn或debug

    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
}

修改后重启Nginx生效:

sudo systemctl restart nginx

调用出错接口后,查看/var/log/nginx/myapi_access.log和/var/log/nginx/myapi_error.log,可确认请求是否到达Nginx、转发是否成功等信息。

2. 查看DotNet应用内部日志

500错误由应用内部抛出,Nginx仅转发状态码,需重点排查应用日志:

方法一:查看应用配置的日志文件

检查项目的appsettings.Production.json(生产环境配置),确保日志级别足够详细,示例配置:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    },
    "File": {
      "Path": "/var/log/myapi/app.log", # 指定日志输出路径
      "LogLevel": {
        "Default": "Information"
      }
    }
  }
}

若配置了文件日志,直接查看对应路径的日志文件即可。

方法二:通过systemd查看服务日志

如果DotNet API用systemd托管(如配置了myapi.service服务),用以下命令实时查看日志:

sudo journalctl -u myapi.service -f

调用出错接口后,就能看到应用抛出的具体异常,比如数据库连接失败、配置错误等。

3. 验证应用运行状态与环境配置

  • 检查API是否在5000端口正常监听:
ss -tulpn | grep 5000

确保输出中存在dotnet进程占用5000端口。

  • 检查MongoDB连接配置:
    对比开发环境appsettings.json与生产环境appsettings.Production.json,确认MongoDB连接字符串(地址、端口、认证信息、数据库名)是否正确,同时验证服务器上MongoDB服务状态:
sudo systemctl status mongod

可直接测试MongoDB连接:

mongosh "mongodb://your-connection-string"

4. 跳过Nginx直接测试API

在服务器上用curl直接访问API端口,验证是否是Nginx转发问题:

curl http://localhost:5000/api/Auth/GetToken

若直接访问也报错,说明问题出在应用本身;若直接访问正常,再回到Nginx配置排查转发逻辑。


内容的提问来源于stack exchange,提问作者Sang Suantak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 02:56:25