【问题标题】:Unable to load Entity Framework Core into C# azure function无法将 Entity Framework Core 加载到 C# azure 函数中
【发布时间】:2018-04-11 22:15:42
【问题描述】:

我已经在Azure/azure-functions-host 中打开了一个issue,并且我有一个带有重现步骤的repo,但是我将其发布在这里,以防我正在做的事情存在固有的错误,或者有人有已经无意中打开了这个问题。

我的目标:我想在一个 azure 函数中运行一些存在于现有 Visual Studio 解决方案中的类库中的代码。

此代码恰好使用实体框架核心来读取和写入 SQL Server 数据库。

在尝试隔离我所面临的问题时,我最终遇到了以下情况:

复制步骤:

  1. 在 Visual Studio 中:文件 > 新建 > 项目 > Azure Functions

  2. 选择Azure Functions v2 Preview (.NET Core)

  3. 选择Http trigger

  4. 选择Storage Emulator

  5. 选择访问权限Function

  6. 使用nuget安装Microsoft.EntityFrameworkCore版本2.0.2

  7. EFCore 包中添加对任何内容的调用

    就我而言,我添加了以下行:

    log.Info(typeof(DbContext).AssemblyQualifiedName);
    
  8. 确保 Azure 存储模拟器正在运行

  9. 从 Visual Studio 运行函数 (F5)

  10. 点击控制台打印的url

预期行为:连同示例 Http trigger 函数的默认行为,我希望看到每次调用都会打印以下行:

Microsoft.EntityFrameworkCore.DbContext, Microsoft.EntityFrameworkCore, Version=2.0.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60

实际行为:应用在运行时抛出异常并输出以下内容

[11-Apr-18 6:33:59 AM] 执行“Function1”(原因='此函数已通过主机 API 以编程方式调用。',Id=6faabfd8-eb96-4d71-906c-940028a7978a)
[11-Apr-18 6:33:59 AM] 执行“Function1”(失败,Id=6faabfd8-eb96-4d71-906c-940028a7978a)
[11-Apr-18 6:33:59 AM] System.Private.CoreLib:执行函数时出现异常:Function1。 FunctionApp1:无法加载文件或程序集“Microsoft.EntityFrameworkCore,Version=2.0.2.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”。无法找到或加载特定文件。 (来自 HRESULT 的异常:0x80131621)。 System.Private.CoreLib:无法加载文件或程序集“Microsoft.EntityFrameworkCore, Version=2.0.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60”。

当前猜想:在研究这个问题时,我发现了一些可能相关的东西:

Azure 函数运行时已经有一组可用的包,其中一个是特定版本中的 Newtonsoft.Json。如果从项目中引用了较新版本的 Newtonsoft.Json,则会观察到类似的行为。

Here 是一个 StackOverflow 问题。 Here 是一个 github 问题

【问题讨论】:

    标签: c# azure entity-framework-core azure-functions


    【解决方案1】:

    解决方法:对于Microsoft.EntityFrameworkCore,回滚到版本 2.0.1。不知道这是否是已知的 EFCore 问题,但回滚到 2.0.1 有助于解决完全相同的问题。

    【讨论】:

      猜你喜欢
      • 2017-02-28
      • 1970-01-01
      • 2022-08-20
      • 2023-03-29
      • 2020-06-16
      • 1970-01-01
      • 2019-07-23
      • 2019-01-18
      • 1970-01-01
      相关资源
      最近更新 更多