Azure Web应用通过GitHub Actions使用FTPS部署.NET API时出现530登录失败错误求助
看起来你在部署第一个.NET API到Azure Web应用时,卡在了GitHub Actions连接FTPS服务器这一步,太闹心了!我之前帮朋友排查过类似的问题,给你列几个最常见的排查方向和解决办法:
先确认Azure FTPS凭证的格式是否正确
Azure的FTP用户名是有固定格式的:<你的Web应用名称>\<部署用户名>,比如你的应用叫MyFirstDotNetApi,部署用户是deployadmin,那用户名就得是MyFirstDotNetApi\deployadmin。很多人容易漏掉前面的应用名称部分,导致登录失败。另外要注意,这个密码是你在Azure门户专门设置的部署用户密码,不是你的Azure账号登录密码哦!检查FTPS服务器地址是否准确
Azure Web应用的FTPS地址格式一般是<应用名称>.ftp.azurewebsites.windows.net,你要确认GitHub Secrets里的AZURE_FTP_SERVER是不是完全符合这个格式,有没有多打、少打字符,比如漏掉.windows.net后缀。另外,FTPS默认用990端口,有时候需要显式指定,你可以试试把命令里的open改成open -p 990 ${{ secrets.AZURE_FTP_SERVER }}。验证GitHub Secrets的配置是否正确
去你的GitHub仓库的「Settings」→「Secrets and variables」→「Actions」里,检查这三个Secrets:AZURE_FTP_USERNAME、AZURE_FTP_PASSWORD、AZURE_FTP_SERVER,有没有拼写错误(比如大小写不对,不过Azure这边一般不区分,但尽量完全匹配)。最靠谱的方式是本地先测试连接:用同样的凭证在本地运行lftp -u "你的用户名,你的密码" -e "open 你的FTPS服务器; ls; bye",如果本地都连不上,那肯定是Azure那边的凭证或设置问题;如果本地能连上,再排查GitHub Actions的配置。调整lftp命令的语法和参数
有时候lftp需要强制启用SSL才能和Azure的FTPS服务器兼容,你可以修改命令试试:- name: Debug FTPS Connection run: | echo "Testing FTPS connection..." lftp -u "${{ secrets.AZURE_FTP_USERNAME }},${{ secrets.AZURE_FTP_PASSWORD }}" -e "set ftp:ssl-force true; open ${{ secrets.AZURE_FTP_SERVER }}; ls; bye"另外也要注意yml里的引号转义有没有问题,用
run: |的多行格式会比单行更稳定,避免引号冲突。
备注:内容来源于stack exchange,提问作者elnukakujo

