Max*_*uez 5 c# azure entity-framework-core azure-functions
我已经开了一个问题,在Azure/azure-functions-host和我有一个回购与再现步骤,但我在这里的情况下张贴这有什么内在的错误我在做什么,或者已经有人偶然打开这个问题.
我的目标:我想在一个azure函数中运行一些代码,这些代码存在于现有visual studio解决方案的类库中.
此代码恰好使用实体框架核心来读取和写入SQL Server数据库.
在尝试隔离我面临的问题时,我最终得到了以下场景:
Repro步骤:
在Visual Studio中:"文件">"新建">"项目">"Azure功能"
选择 Azure Functions v2 Preview (.NET Core)
选择 Http trigger
选择 Storage Emulator
选择访问权限 Function
使用nuget Microsoft.EntityFrameworkCore版本安装2.0.2
从EFCore包中添加对任何内容的调用
在我的情况下,我添加了以下行:
log.Info(typeof(DbContext).AssemblyQualifiedName);
Run Code Online (Sandbox Code Playgroud)确保azure存储模拟器正在运行
从visual studio(F5)运行该函数
点击控制台中打印的网址
预期的行为:以及示例Http trigger函数的默认行为,我希望看到每个调用打印以下行:
Microsoft.EntityFrameworkCore.DbContext, Microsoft.EntityFrameworkCore, Version=2.0.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
Run Code Online (Sandbox Code Playgroud)
实际行为:应用程序在运行时抛出异常并输出以下内容
[11-Apr-18 6:33:59 AM]执行'Function1'(Reason ='此功能通过主机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从项目引用较新版本的情况下,观察到类似的行为.
解决方法:Microsoft.EntityFrameworkCore回滚到版本 2.0.1。不知道这是否是一个已知的 EFCore 问题,但回滚到 2.0.1 有助于解决完全相同的问题。
| 归档时间: |
|
| 查看次数: |
881 次 |
| 最近记录: |