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

Ubuntu 20.04.5 LTS部署.NET 7应用后无法运行,提示Exec格式错误

解决.NET 7应用部署后"Exec format error"问题

可能原因

  • 编译架构不匹配:本地编译时的CPU架构(如x86/AMD64)与服务器CPU架构(如ARM/ARM64)不一致
  • 发布配置错误:发布时未指定匹配服务器的目标运行时,或发布类型选择错误
  • 文件传输损坏:应用文件在传输到服务器的过程中出现损坏,导致二进制无法正常解析

解决步骤

  1. 确认服务器CPU架构
    执行命令查看服务器的硬件架构:

    uname -m
    

    常见输出:x86_64(AMD64)、aarch64(ARM64)、armv7l(ARM32)

  2. 重新发布匹配架构的应用
    在开发环境中,使用dotnet publish命令指定对应服务器的运行时:

    • 针对AMD64架构服务器:
      dotnet publish -c Release -r linux-x64 --self-contained true
      
    • 针对ARM64架构服务器:
      dotnet publish -c Release -r linux-arm64 --self-contained true
      

    说明:--self-contained true会打包.NET 7运行时,无需服务器提前安装对应环境;若服务器已装.NET 7运行时,可改为--self-contained false

  3. 验证文件完整性
    用scp或rsync重新传输发布后的文件,传输完成后对比本地与服务器文件的MD5值确认无损坏:

    # 本地计算文件MD5
    md5sum ./bin/Release/net7.0/linux-x64/publish/WEBAPP
    # 服务器端计算文件MD5
    md5sum ./WEBAPP
    

    确保两次输出的MD5值完全一致

  4. 设置可执行权限
    给服务器上的应用文件添加执行权限:

    chmod +x ./WEBAPP
    

另外,你尝试的#!/.WEBAPP是错误用法,shebang仅用于指定脚本的解释器(如框架依赖型发布的应用可写#!/usr/bin/env dotnet),不适用于独立发布的二进制文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:35:13