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

Blazor WebAssembly发布到AWS Beanstalk空引用异常问题咨询

Blazor WebAssembly部署到AWS Elastic Beanstalk Linux环境报错解决方案

报错场景

执行AWS EB部署命令时触发空引用异常,报错信息如下:

Configuring application bundle for a Linux deployment
Writing Procfile for deployment bundle
Unknown error executing command: Object reference not set to an instance of an object.
   at Amazon.ElasticBeanstalk.Tools.EBUtilities.SetupPackageForLinux(IToolLogger logger, EBBaseCommand command, DeployEnvironmentProperties options, String publishLocation, String reverseProxy, Nullable`1 applicationPort)
   at Amazon.ElasticBeanstalk.Tools.Commands.DeployEnvironmentCommand.<PerformActionAsync>d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Amazon.Common.DotNetCli.Tools.Commands.BaseCommand`1.<ExecuteAsync>d__10.MoveNext()

手动上传发布包后环境仅显示默认示例页面,无业务内容。

根因说明

纯客户端Blazor WASM是纯静态站点,不包含.NET服务端运行时配置,AWS EB工具默认扫描.NET服务端项目的配置文件,扫描不到对应内容就会抛出空引用异常。如果选择了.NET Core类的EB环境,环境默认会寻找服务端启动程序,找不到的话就会加载默认示例页面,不会识别静态WASM文件。

可行解决方案

方案一:Nginx平台托管(推荐,资源占用更低)

纯静态WASM直接用Nginx环境托管即可,无需使用.NET运行环境,步骤如下:

  • 本地发布Blazor WASM项目,发布配置选Release,目标运行时选择「可移植」即可,无需指定linux-x64,发布后拿到所有产出的静态文件
  • 在发布文件根目录(和index.html同级)创建Procfile文件,内容为:
    web: nginx -g 'daemon off;'
    
  • 按层级创建目录.platform/nginx/conf.d/elasticbeanstalk/,在该目录下新增00_application.conf配置文件,内容为:
    location / {
        root /var/app/current;
        index index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }
    
    该配置用于解决WASM前端路由刷新404的问题,同时指定静态文件的加载根目录
  • 将所有发布文件、Procfile、.platform文件夹打包为zip包,注意zip根目录直接包含上述文件,不要额外套一层外层文件夹
  • 到AWS EB控制台创建新环境,平台选择「Nginx」,上传上述zip包部署即可正常访问

方案二:ASP.NET Core托管部署

如果需要复用已有的.NET EB环境,可以给Blazor WASM套一层ASP.NET Core服务端外壳:

  • 新建ASP.NET Core托管的Blazor WASM项目,将原有WASM的业务代码迁移到客户端子项目中
  • 直接用AWS Toolkit一键部署服务端项目即可,工具可以识别到服务端的.NET配置,不会抛出空引用异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:39:03