Flurl 缺少方法异常?

Flurl Missing Method Exception?

我正在使用 Flurl 来处理 API,并且在大多数情况下它运行良好。但是我有一些用户得到了一个丢失的方法异常。我正在尝试从一位体验它的用户那里获得完整的堆栈跟踪,但到目前为止,我只有该消息的屏幕截图。异常消息是:

System.Threading.Tasks.Task`1<System.Net.Http.HttpResponseMessage>Flurl.Http.GeneratedExtensions.PostJsonAsync(Flurl.Http.IFlurlRequest, System.Object, System.Threading.CancellationToken, System.Net.Http.HttpCompletionOption)

奇怪的是;我最初没有在我的安装中包含 System.Net.Http 并且对于大多数用户来说一切似乎都工作正常,但有些人开始获得 'unable to load System.Net.Http version 4.1.x' (不记得 x 部分但它是 4.1.something...)。无论如何,当我参考 Flurl.Http 2.4.2.0 时,它正在使用 System.Net.Http 4.6.26907.1 构建。当我将其包含在安装中时,他们会收到上述错误。这仅适用于少数用户,大多数(包括我的开发机器)没有出现任何错误并且工作正常,我不明白。

任何人都知道为什么它会这样做,特别是为什么它会在某些机器上而不是其他机器上?

common problemSystem.Net.Http 很漂亮。我之前已经 运行 进入了它,我越是 "clean slate" ,我的运气就越好。试试这个:

  1. 同时卸载 Flurl 和 Flurl.Http NuGet 包。
  2. 您使用的是 .NET Framework 吗?如果是这样,并且您已经通过 NuGet 安装了 System.Net.Http,请也将其卸载。你可能不需要它。
  3. 检查您的 web.config 或 app.config 文件并删除与 System.Net.Http 关联的所有 binding redirects。 (不要在这方面引用我的话,但我 认为 我什至通过从 *.config 中完全删除所有提到的 System.Net.Http 来解决这个问题。如果你尝试这样做,只是确保你可以回滚它。)
  4. 重新安装 Flurl.Http。 (它会拉动核心 Flurl,所以不要单独进行。)

当然,如果这不起作用,您可以随时筛选上面链接的大量类似问题。这令人沮丧,而且我认为没有任何一个答案适用于所有情况。祝你好运。