我已经在Azure/azure-functions-host中打开了一个Azure/azure-functions-host,我有一个带有repro步骤的存储库,但是我在这里发布这篇文章,以防我正在做的事情本身有什么问题,或者有人已经无意中发现了这个问题。
我的目标:我想在一个蔚蓝的函数中运行一些存在于现有visual解决方案中的类库中的代码。
这段代码恰好使用实体框架内核来读取和写入Server数据库。
在试图隔离我所面临的问题时,我最终得到了以下场景:
复制步骤:
Azure Functions v2 Preview (.NET Core)Http triggerStorage EmulatorFunctionMicrosoft.EntityFrameworkCore版本2.0.2安装EFCore包中的任何内容
在我的例子中,我添加了以下一行:
log.Info(typeof(DbContext).AssemblyQualifiedName);F5)运行函数预期行为:与示例Http trigger函数的默认行为一起,我希望看到与每次调用一起打印的如下行:
Microsoft.EntityFrameworkCore.DbContext, Microsoft.EntityFrameworkCore, Version=2.0.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60实际行为:应用程序在运行时抛出一个异常并输出以下内容
11-4月18日6:33:59 AM执行'Function1‘(理由=’通过主机Apr以编程方式调用此函数‘,Id=6faabfd8-eb96-4d71-906c-940028a7978a) 11-4月18日6:33:59 AM执行'Function1‘(失败,Id=6 6faabfd8 8-eb96-4d71-906c-940028a7978a) 4月11日-18日6:33:59 AM System.Private.CoreLib: Exception执行函数: 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的情况下,会观察到类似的行为。
发布于 2018-04-13 15:05:54
解决办法:将Microsoft.EntityFrameworkCore回滚到2.0.1版。不知道这是否是一个已知的EFCore问题,但回到2.0.1有助于解决完全相同的问题。
https://stackoverflow.com/questions/49785180
复制相似问题