首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >急性MissingMethodException

急性MissingMethodException
EN

Stack Overflow用户
提问于 2019-07-28 10:01:19
回答 1查看 270关注 0票数 2

我正在运行一个自定义的EntityFrameworkCore版本,它有一些我需要的附加功能。从2019/07/25号星期四开始,我将在我的4项应用服务计划中的3项获得MissingMethodException :开发、舞台和生产。测试、阶段和生产环境是同步的,并且包含相同的代码。因此,测试环境仍然有效是非常奇怪的。我还在Azure Devops管道中设置了集成测试。管道执行以下任务:使用dotnet、dotnet还原、dotnet build、dotnet测试、dotnet发布。所有的测试都成功了。只有在app服务上,相同的请求才不起作用。

  1. 自2019/06/28以来,没有对测试、舞台和生产环境进行任何发布。
  2. 测试环境具有与阶段相同的代码,并且生产环境和功能正常。
  3. 直到2019/07/25,它才停止了在开发、舞台和生产方面的工作。在那之前一切都很好。
  4. 端到端集成测试都是在使用Azure Devops管道的前提下构建服务器上成功的。
  5. 这是陈词滥调,但在当地有效。

这是非常可怕的,一个月的正常运作的东西突然一夜之间完全停止运作。代码没有任何变化。

我读到MissingMethodException指向一个DLL问题(System.MissingMethodException: Method not found?)。MissingMethodException发生在自定义代码中,因此DLL问题似乎是合乎逻辑的,但我不知道为什么所有的东西都在测试环境上工作,为什么它以前工作过!我怎么才能正确诊断这个呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-31 10:15:21

显然,.NET核心依赖于EntityFrameworkCore。由于这种依赖关系,安装.NET Core时提供了它自己的Microsoft.EntityFrameworkCore DLL。只要我的自定义EntityFrameworkCore DLL的版本高于它所安装的DLL,这就不是一个问题。但是它们应用的版本控制似乎不是EntityFrameworkCore的版本控制,而是所使用的运行时的版本控制。上周,在幕后对API应用程序进行了更新。这意味着安装了2.2.6运行时。此运行时的EntityFrameworkCore DLL的版本号高于我的自定义DLL。正因为如此,应用程序所使用的DLL突然发生切换,并且不再找到导致MissingMethodException的自定义方法。

在安装了最新的.NET SDK之后,我诊断了这个问题。这导致安装了最新的运行时,而我的解决方案在本地的行为方式与已部署的解决方案相同。我打开了模块窗口(Debug -> Windows -> Modules),然后意识到发生了什么。

这意味着我不再需要自我包含的部署,但是为了避免由于随机更新而造成的破坏,我还是应该对它进行研究。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57239788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档