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

.NET Core应用部署Elastic Beanstalk时遇System.Drawing.Common加载失败错误

解决Elastic Beanstalk Windows环境下.NET Core应用缺失System.Drawing.Common的问题

原因及修复步骤

1. 确认项目依赖正确配置

  • 打开项目的.csproj文件,确认已添加System.Drawing.Common的NuGet引用:
    <PackageReference Include="System.Drawing.Common" Version="6.0.0" />
    
  • 发布应用时,确保勾选“包含所有依赖项”;用命令行发布的话,框架依赖部署执行dotnet publish -c Release,独立部署则加上-r win-x64参数,确保打包所有必要组件。

2. 配置.NET 6+的平台兼容性

从.NET 6开始,System.Drawing.Common仅支持Windows平台,需在.csproj中指定运行时标识:

<PropertyGroup>
  <RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
</PropertyGroup>

之后用对应运行时发布:

dotnet publish -c Release -r win-x64

3. 给Elastic Beanstalk环境补装GDI+组件

Windows Server 2019的ServerCore版本可能缺失GDI+基础库,可通过.ebextensions脚本自动安装:
在项目根目录创建.ebextensions/gdi_setup.config文件,写入:

container_commands:
  01_enable_gdi_features:
    command: dism /online /enable-feature /featurename:ServerCore-Gui-Mgmt /all /norestart

部署时Elastic Beanstalk会自动执行该命令,启用所需系统组件。

4. 检查部署包完整性

解压上传的部署zip包,查看runtimes/win-x64/native目录下是否存在libgdiplus.dll文件。如果没有,重新发布项目,确保NuGet包完整下载并打包。

5. 验证IIS应用池位数

你的环境是64位Windows,需确保IIS应用池为64位模式:

  • 登录EC2实例,打开IIS管理器
  • 找到对应应用的应用池,右键选择“高级设置”
  • 将“启用32位应用程序”设为False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 10:07:18