【问题标题】:Could not load type 'Microsoft.AspNetCore.Http.Internal.BufferingHelper' from assembly 'Microsoft.AspNetCore.Http, Version=3.1.0.0无法从程序集“Microsoft.AspNetCore.Http,版本=3.1.0.0”加载类型“Microsoft.AspNetCore.Http.Internal.BufferingHelper”
【发布时间】:2020-04-15 09:16:06
【问题描述】:

我正在尝试将我的 API 项目从 .net core 2.2 升级到 .net core 3.1。当我尝试进行 API 调用时,我得到了这个异常。

“消息”:“无法从程序集“Microsoft.AspNetCore.Http,版本=3.1.0.0,文化=中性,PublicKeyToken=adb9793829ddae60”加载类型“Microsoft.AspNetCore.Http.Internal.BufferingHelper”。”,状态码":500,"TrackingID":"800000bd-0000-fe00-b63f-84710c7967bb"

我在“github”上尝试了解决方案

请帮我解决问题。

【问题讨论】:

    标签: c# asp.net-core


    【解决方案1】:

    我知道你已经尝试过this solution 但我不明白帖子的含义(请参阅下面的评论)

    "通过引用固定的 dll 而不是 NuGet 包,它可以工作 再次。”

    但是:

    我的 Azure 函数在请求对象上使用 EnableRewind() 以使流可搜索。我用EnableBuffering() 直接替换,一切都恢复正常了。

    我正在使用带有 .NET Core 3.1 的 Azure Functions v3。这是我最初收到的错误:

    Could not load type 'Microsoft.AspNetCore.Http.Internal.BufferingHelper' from assembly 'Microsoft.AspNetCore.Http, Version=3.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
    

    【讨论】:

    • “通过引用固定的戴尔”意味着他们没有使用当时最新的 nuget 包,而是引用了他们自己构建的一个 dll,该 dll 修复了他们的特定问题。
    【解决方案2】:

    所以我使用ReadAsStringAsync 方法遇到了确切的问题。您会注意到它的实现也使用了EnableRewind 方法。我最终只是制作了我自己的ReadAsStringAsync 版本。实现如下:

    public static async Task<string> ReadAsStringAsync(this HttpRequest request)
            {
                request.EnableBuffering();
    
                string result = null;
                using (var reader = new StreamReader(
                    request.Body,
                    encoding: Encoding.UTF8,
                    detectEncodingFromByteOrderMarks: true,
                    bufferSize: 1024,
                    leaveOpen: true))
                {
                    result = await reader.ReadToEndAsync();
                }
    
                request.Body.Seek(0, SeekOrigin.Begin);
    
                return result;
            }
    

    【讨论】:

      猜你喜欢
      • 2020-04-02
      • 2017-07-09
      • 2023-03-28
      • 2020-03-13
      • 1970-01-01
      • 2018-01-14
      • 2020-02-10
      • 1970-01-01
      • 2019-05-07
      相关资源
      最近更新 更多