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

如何将.Net Core 2.2应用从GitLab流水线部署到Plesk共享服务器IIS并解决msdeploy路径错误

报错根因

你当前使用的mcr.microsoft.com/dotnet/sdk:3.1-focal是Linux系统镜像,而msdeploy.exe是Windows平台专属的IIS部署工具,Linux环境中不存在该程序,因此dotnet publish调用MSDeploy时会报路径无效错误。

可行解决方案

方案1:切换为Windows类型的GitLab Runner(适配MSDeploy最优解)

直接更换流水线的运行节点为Windows系统的GitLab Runner,提前在Runner上安装以下依赖:

  • .NET Core 2.2 SDK(匹配你的应用版本
  • Microsoft Web Deploy V3

调整后的流水线配置无需大幅修改,原有publish命令可直接执行,就能正常调用本地的msdeploy.exe完成部署。

方案2:Linux Runner下拆分构建+部署步骤(无MSDeploy依赖)

如果只能使用Linux Runner,拆分构建和部署流程,避开MSDeploy依赖:

  1. 第一步先在Linux环境下构建出独立发布包,输出为构建产物:
publish-to-dev:
  stage: publish-to-dev
  image: mcr.microsoft.com/dotnet/sdk:3.1-focal
  script:
    - dotnet build
    - dotnet publish -c Release -o ./publish
  artifacts:
    paths:
      - ./publish/
  1. 第二步将构建产物部署到Plesk服务器,可选两种方式:
  • 若Plesk站点开通了FTP/SFTP权限,直接通过lftp/sftp命令将publish目录下的所有文件上传到IIS站点对应根目录即可
  • 若Plesk开放了Web Deploy的远程发布接口,可调用跨平台的Web Deploy客户端工具推送发布包

额外注意事项

  • 确认Plesk侧的站点配置已开启.NET Core支持,对应应用池配置匹配的运行时版本
  • .NET Core 2.2已经停止官方支持,建议尽快升级到.NET 6/.NET 8等LTS版本,避免安全和兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:09:03