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

Linux服务器部署.NET Core项目:发布文件上传及XAMPP运行异常求助

.NET Core 项目 Linux 服务器部署指南

一、发布文件上传到服务器的几种方法

  • SCP 命令:本地终端直接传输,示例命令:
    scp -r /本地发布文件夹/* 服务器用户名@服务器IP:/服务器目标路径
  • SFTP 工具:用FileZilla、WinSCP这类图形化工具,连接服务器后直接拖拽文件到目标目录,操作直观适合新手。
  • Git 同步:如果项目托管在Git仓库,服务器克隆仓库后直接拉取发布文件,适合需要频繁更新的场景。

二、XAMPP部署失败的原因

.NET Core项目是独立运行的Web应用,依赖.NET Core Runtime或SDK,并非PHP这类可直接放入Apache htdocs目录解析的项目。你看到文件夹目录是因为Apache默认开启了目录浏览功能,仅将发布文件作为静态资源展示,并未启动你的.NET Core应用。

三、正确部署的两种主流方案

方案1:直接运行应用(测试/小流量场景)

  1. 服务器安装.NET Core Runtime:
    • 先导入微软包签名密钥:
      wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
      sudo dpkg -i packages-microsoft-prod.deb
    • 安装ASP.NET Core Runtime(以6.0版本为例):
      sudo apt-get update && sudo apt-get install -y aspnetcore-runtime-6.0
  2. 进入服务器上的发布文件目录,启动应用:
    dotnet 你的项目名称.dll
    应用默认监听5000端口,服务器开放该端口后,即可通过http://服务器IP:5000访问。
  3. 后台运行应用(避免终端关闭后进程终止):
    使用nohup命令:
    nohup dotnet 你的项目名称.dll > log.txt 2>&1 &
    应用日志会输出到log.txt文件,方便后续排查问题。

方案2:Apache反向代理(生产环境,支持域名/SSL)

  1. 先按照方案1安装好.NET Core Runtime,确保应用能正常启动。
  2. 启用Apache的反向代理模块:
    sudo a2enmod proxy proxy_http proxy_html rewrite
    重启Apache使配置生效:sudo systemctl restart apache2
  3. 创建Apache虚拟主机配置文件(示例路径:/etc/apache2/sites-available/你的项目.conf),内容如下:
    <VirtualHost *:80>
        ServerName 你的域名(或服务器IP)
        ProxyPreserveHost On
        ProxyPass / http://localhost:5000/
        ProxyPassReverse / http://localhost:5000/
        ErrorLog ${APACHE_LOG_DIR}/你的项目-error.log
        CustomLog ${APACHE_LOG_DIR}/你的项目-access.log combined
    </VirtualHost>
    
  4. 启用该虚拟主机配置:
    sudo a2ensite 你的项目.conf
    再次重启Apache:sudo systemctl restart apache2
  5. 设置.NET Core应用开机自启(通过systemd服务实现):
    创建服务文件(示例路径:/etc/systemd/system/你的项目.service),内容如下:
    [Unit]
    Description=你的.NET Core项目服务
    
    [Service]
    WorkingDirectory=/服务器上的发布文件目录
    ExecStart=/usr/bin/dotnet /服务器上的发布文件目录/你的项目名称.dll
    Restart=always
    RestartSec=10
    User=www-data
    Environment=ASPNETCORE_ENVIRONMENT=Production
    
    [Install]
    WantedBy=multi-user.target
    
    执行以下命令使服务生效:
    sudo systemctl daemon-reload
    sudo systemctl enable 你的项目.service
    sudo systemctl start 你的项目.service
    配置完成后,应用会随服务器开机自动启动,异常退出时也会自动重启。

四、常见问题排查

  • 访问出现502错误:检查.NET Core应用是否正常运行(执行ps aux | grep dotnet),以及5000端口是否被占用(执行netstat -tulpn | grep 5000)。
  • 权限不足问题:确保发布文件目录和日志目录拥有www-data用户的读写权限,可执行命令:sudo chown -R www-data:www-data /发布文件目录路径。

内容的提问来源于stack exchange,提问作者Pangomi IT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 17:15:08