Не удалось загрузить тип «AmbiguousActionException» из Microsoft.AspNetCore. Mvc .Core после миграции. NET Ядро с 2.2 до 3.1 - PullRequest
0 голосов
/ 06 февраля 2020

Мы переносим наши API с. NET Core 2.2 на. NET Core 3.1, и у нас есть промежуточное ПО, которое перехватывает исключения и возвращает HTTP-код. Это метод Invoke:

public async Task Invoke(HttpContext context){
try
{
    _logger.LogDebug("Invoke: Before _next invoke.");
    await _next(context);
    _logger.LogDebug("Invoke: Get Response Body.");
    context.Response.Body.Seek(0, SeekOrigin.Begin);
    string text = await new StreamReader(context.Response.Body).ReadToEndAsync();
    context.Response.Body.Seek(0, SeekOrigin.Begin);
    _logger.LogDebug("Invoke: Process the response and continue.");
    ProcessingRestfulResponse(context, text);
}
catch (NotFoundException notFound)
{
    _logger.LogDebug(notFound, "Invoke - NotFoundException.");
    await context.Response.WriteAsync(ChangeResponseMiddleware(context, notFound, HttpStatusCode.NotFound));
}
... // Another catches
catch (AmbiguousActionException aaex)
{
    _logger.LogDebug(aaex, "Invoke - AmbiguousActionException.");
    await context.Response.WriteAsync(ChangeResponseMiddleware(context, aaex, HttpStatusCode.NotFound));
}
catch (Exception ex)
{
    _logger.LogCritical(ex, "Invoke - Exception: " + ex.Message);
    await context.Response.WriteAsync(ChangeResponseMiddleware(context, ex, HttpStatusCode.InternalServerError));
}

}

Как видите, у нас есть ссылка на AmbiguousActionException. Этот код вызывает следующее исключение во время выполнения

System.TypeLoadException: Could not load type 'Microsoft.AspNetCore.Mvc.Internal.AmbiguousActionException' from assembly 'Microsoft.AspNetCore.Mvc.Core, Version=3.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.

И файл проекта содержит ссылку на Microsoft.AspNetCore. Mvc .Core 2.2.5

<Project Sdk="Microsoft.NET.Sdk">


<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <Version>2.0.0.0-beta</Version>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" />
    <PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.1" />
  </ItemGroup>

</Project>

Помогите мне, пожалуйста :)

...