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

如何阻止AWS Elastic Beanstalk部署.NET Framework应用时创建Portal_deploy文件夹

解决AWS Elastic Beanstalk部署.NET Framework应用时创建子文件夹的问题

1. 如何阻止创建“Portal_deploy”子文件夹?

有几种直接的方法可以实现将ZIP包文件直接部署到C:\inetpub\wwwroot:

方法一:修正ZIP包的结构

确保你的Portal.zip根目录下直接包含应用的所有文件(比如web.config、bin文件夹、页面文件等),而不是先嵌套一个名为Portal的文件夹。多数情况下EB创建xxx_deploy文件夹,是因为ZIP包内容被嵌套在同名子目录里,EB会自动将这个子目录重命名为xxx_deploy并生成重写规则。

方法二:使用.ebextensions配置强制指定部署目录

在应用根目录下创建.ebextensions文件夹,里面新建一个deploy-settings.config文件,内容如下:

files:
  "C:\\Program Files\\Amazon\\ElasticBeanstalk\\config\\containerconfiguration":
    content: |
      containerconfiguration:
        dotnet:
          deploy_path: "C:\\inetpub\\wwwroot"
        iis:
          web_site:
            physical_path: "C:\\inetpub\\wwwroot"

这个配置会覆盖EB默认的部署路径,强制将应用文件直接部署到wwwroot根目录,不再创建子文件夹。

方法三:使用部署脚本自定义部署流程

如果上面的方法不生效,可以添加PowerShell部署脚本。在.ebextensions中创建deploy-script.config:

container_commands:
  01_deploy_to_root:
    command: |
      Remove-Item -Path "C:\inetpub\wwwroot\*" -Recurse -Force
      Copy-Item -Path "C:\staging\*" -Destination "C:\inetpub\wwwroot" -Recurse -Force
    ignoreErrors: false

EB会先将ZIP包解压到C:\staging临时目录,这个脚本会把临时目录里的所有文件直接复制到wwwroot,并清空原有内容。

2. Elastic Beanstalk为何自动创建该文件夹,能否禁用?

EB创建xxx_deploy文件夹是默认的部署逻辑:

  • 当EB检测到ZIP包根目录包含与应用名称(或ZIP包名称)同名的子文件夹时,会自动将该子目录重命名为xxx_deploy,并生成重写规则保证URL访问正常。
  • 另外,EB的IIS容器默认会为每个部署版本创建独立子目录,通过重写规则路由请求,避免部署过程中影响现有应用。

这种行为可以通过上述.ebextensions配置或修正ZIP包结构完全禁用。只要ZIP包结构正确,或者通过配置强制指定部署路径,就不会再生成xxx_deploy文件夹和对应的重写规则。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 06:41:00