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

无法通过FTP将ASP.NET Core应用发布至Ubuntu 16.04远程服务器

解决ASP.NET Core FTP发布到Ubuntu 16.04的权限拒绝问题

你碰到的核心问题是FTP用户对远程服务器的目标目录没有写入/创建权限,所以Visual Studio在上传文件和创建var文件夹时被Ubuntu的权限系统拒绝了,返回550错误。下面是具体的解决步骤:

1. 确认FTP目标目录路径

首先通过SSH登录你的Ubuntu服务器,找到FTP用户对应的根目录:

  • 如果用的是vsftpd,查看配置文件确认路径:cat /etc/vsftpd.conf | grep local_root,输出的就是FTP用户登录后的默认目录(比如local_root=/var/www/my-aspnet-app)
  • 或者直接切换到FTP用户(如果允许登录Shell),执行pwd查看当前目录

2. 修复目录权限和所有者

假设你的FTP用户名为ftpuser,目标目录是/var/www/my-aspnet-app,执行以下命令:

  • 将目录及其子文件/文件夹的所有者改为FTP用户:
    sudo chown -R ftpuser:ftpuser /var/www/my-aspnet-app
    
  • 设置目录权限,确保FTP用户有读写执行权限:
    sudo chmod -R 755 /var/www/my-aspnet-app
    
    (755权限表示所有者有读写执行,组和其他用户有读执行,既安全又满足发布需求)

3. 检查FTP服务器配置(以vsftpd为例)

如果用的是vsftpd,需要确保配置允许写入:

  1. 打开配置文件:sudo nano /etc/vsftpd.conf
  2. 确认以下配置项:
    • write_enable=YES(必须开启,允许FTP写入操作)
    • local_umask=022(设置上传文件的默认权限掩码,避免上传后权限不足)
  3. 重启vsftpd服务生效:
    sudo systemctl restart vsftpd
    

4. 额外建议:更推荐的发布方式

其实对于ASP.NET Core应用发布到Ubuntu,SSH发布(Visual Studio原生支持)或者用dotnet publish生成发布包后通过SCP上传,比FTP更安全、稳定,也更少碰到权限问题。如果后续发布还遇到麻烦,可以尝试这种方式:

  • 在Visual Studio发布选项中选择SSH,填写服务器IP、用户名密码,目标目录设置为你刚才配置好的路径即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:18:02