gpt4 book ai didi

c# - 急性缺失方法异常

转载 作者:行者123 更新时间:2023-12-02 07:05:13 25 4
gpt4 key购买 nike

我正在运行一个自定义 EntityFrameworkCore 版本,它具有一些我需要的附加功能。自 2019 年 7 月 25 日星期四以来,我的 4 个应用程序服务计划中的 3 个出现了 MissingMethodException:开发、阶段和生产。测试、阶段和生产环境是同步的,并且包含完全相同的代码。因此,测试环境仍然有效是非常奇怪的。我还在 Azure Devops 管道中设置了集成测试。该管道执行以下任务:使用 dotnet、dotnet 恢复、dotnet 构建、dotnet 测试、dotnet 发布。所有测试都成功。仅在应用服务上,相同的请求不起作用。

  1. 自此以来,未对测试、阶段和生产环境进行任何发布2019/06/28。
  2. 测试环境与舞台代码相同,生产环境正常,功能正常。
  3. 直到 2019 年 7 月 25 日,它才停止了开发、阶段和生产工作。在此之前:一切都很好。
  4. 端到端集成测试均在使用 Azure Devops 管道的本地构建服务器上成功。
  5. 这虽然是陈词滥调,但在本地却有效。

这非常可怕,一个正常运行了一个月的东西突然一夜之间就完全停止运行了。无需更改任何代码。

我读到 MissingMethodException 指向 DLL 问题 ( System.MissingMethodException: Method not found? )。 MissingMethodException 发生在自定义代码中,因此 DLL 问题似乎是合乎逻辑的,但我无法弄清楚为什么一切仍然在测试环境中工作以及为什么它之前工作!我怎样才能正确诊断这个问题?

最佳答案

显然 .NET Core 依赖于 EntityFrameworkCore。由于存在这种依赖性,安装 .NET Core SDK 时会附带其自己的 Microsoft.EntityFrameworkCore DLL。只要我的自定义 EntityFrameworkCore DLL 的版本高于 SDK 安装的版本,这就不成问题。但它们应用的版本控制似乎不是 EntityFrameworkCore 的版本控制,而是所使用的运行时的版本控制。上周,API 应用程序在幕后发生了更新。这意味着 2.2.6 运行时已安装。该运行时的 EntityFrameworkCore DLL 的版本号比我的自定义版本号更高。因此,应用程序使用的 DLL 突然发生切换,并且不再找到自定义方法,从而导致 MissingMethodException。

我在安装最新的 .NET SDK 后诊断了该问题。这导致安装了最新的运行时,并且我的解决方案在本地的行为方式与部署的解决方案相同。我打开“模块”窗口(“调试”->“窗口”->“模块”),然后意识到发生了什么。

这意味着我不再需要独立部署,但尽管如此,为了避免随机更新造成的重大更改,可能还是值得研究一下。

关于c# - 急性缺失方法异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57239788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com