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

如何调试.NET Standard 2.0 Azure Function中的FileLoadException异常

解决.NET Standard 2.0 Azure Function的FileLoadException问题

没法用RDP和Fuslog确实有点头疼,但咱们从日志里的线索——找不到Microsoft.WindowsAzure.Storage, Version=9.1.1.0——可以一步步排查:

  • 第一步:核对项目依赖版本与引用
    先打开你的Function项目的.csproj文件,检查<PackageReference>里的Microsoft.WindowsAzure.Storage版本是不是9.1.1.0。如果版本不对,直接调整到对应版本然后重新还原包。
    另外,用命令dotnet list package --include-transitive查看所有间接依赖,看看有没有其他NuGet包引用了这个组件的不同版本,版本不一致很容易导致加载冲突。

  • 第二步:检查部署包的内容完整性
    本地生成发布包后解压,看看bin目录里有没有Microsoft.WindowsAzure.Storage.dll,并且右键查看文件属性里的版本是否是9.1.1.0。如果缺失,那大概率是打包配置的问题,记得在.csproj里加上:

    <PropertyGroup>
      <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
    </PropertyGroup>
    

    这个配置能确保所有依赖都被复制到输出目录,避免部署时遗漏。

  • 第三步:利用Azure Portal的诊断工具
    登录Azure Portal,找到你的Function App,进入「诊断并解决问题」页面,搜索“Function App无法启动”或“依赖项缺失”相关的排查项,运行诊断后通常能获取更详细的错误细节——比如是真的找不到文件,还是版本不匹配导致的加载失败。

  • 第四步:处理绑定重定向(如果是版本冲突)
    如果是Azure Functions Runtime自带的Microsoft.WindowsAzure.Storage版本和你的项目版本不一致,就需要添加绑定重定向。在项目根目录创建app.config文件,添加以下内容:

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Microsoft.WindowsAzure.Storage" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-9.1.1.0" newVersion="9.1.1.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    

    同时在.csproj里加上:

    <PropertyGroup>
      <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
    </PropertyGroup>
    

    这样发布时绑定重定向会被正确应用。

  • 第五步:用Kudu控制台直接检查服务器文件
    在Azure Portal的Function App里,进入「开发工具」>「高级工具」打开Kudu控制台,然后导航到site/wwwroot/bin目录:

    • 用dir Microsoft.WindowsAzure.Storage.dll确认文件是否存在
    • 如果存在,用dumpbin /headers Microsoft.WindowsAzure.Storage.dll查看文件的版本信息(如果Kudu里没有dumpbin,也可以通过文件属性查看)
  • 可选:考虑迁移到新的存储SDK
    Microsoft.WindowsAzure.Storage是旧版SDK,现在官方推荐使用Azure.Storage.Blobs等新的Azure Storage包。如果你的项目允许,迁移到新包不仅能避免版本冲突问题,还能获得更好的支持和新功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:28:32