Интеграция asp.net Swashbuckle вызывает «Не удалось загрузить файл или сборку System.Web.Http, версия = 4.0.0.0»

Я хочу добавить Swagger в мою службу REST asp.net, используя Swashbuckle, как указано здесь.

Я прошел все шаги, и, поскольку я использую Owin, у меня установлены как Swashbuckle, так и Swashbuckle.Core nugets.

Однако, когда я запускаю и перехожу к http://localhost/myapp/swagger, я получаю следующую ошибку.

Could not load file or assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

У меня есть версия 5.2.4.01 этой DLL, поэтому я добавил следующие перенаправления

  <dependentAssembly>
    <assemblyIdentity name = "System.Web.Http" publicKeyToken = "31bf3856ad364e35" culture = "neutral" />
    <bindingRedirect oldVersion = "4.0.0.0" newVersion = "5.2.4.0" />
  </dependentAssembly>

  <dependentAssembly>
    <assemblyIdentity name = "System.Net.Http.Formatting" publicKeyToken = "31bf3856ad364e35" culture = "neutral" />
    <bindingRedirect oldVersion = "0.0.0.0-5.1.0.0" newVersion = "5.2.4.0" />
  </dependentAssembly>

Я также добавил перенаправление System.Net.Http.Formatting, поскольку я видел это упомянутым в другом посте (но это не имело значения)

Я все еще получаю сообщение об ошибке, как показано ниже...

    Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
    Running under executable  c:\windows\system32\inetsrv\w3wp.exe
    --- A detailed error log follows. 

    === Pre-bind state information ===
    LOG: DisplayName = System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
     (Fully-specified)
    LOG: Appbase = file:///D:/dev/myapp/trunk/myapp/
    LOG: Initial PrivatePath = D:\dev\myapp\trunk\myapp\bin
    Calling assembly : Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc.
    ===
    LOG: This bind starts in default load context.
    LOG: Using application configuration file: D:\dev\myapp\trunk\myapp\web.config
    LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config
    LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
    LOG: Redirect found in application configuration file: 4.0.0.0 redirected to 5.2.3.0.
    LOG: Post-policy reference: System.Web.Http, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/myappdev/0d9cef3e/aedd2787/System.Web.Http.DLL.
    LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/myappdev/0d9cef3e/aedd2787/System.Web.Http/System.Web.Http.DLL.
    LOG: Attempting download of new URL file:///D:/dev/myapp/trunk/myapp/bin/System.Web.Http.DLL.
    WRN: Comparing the assembly name resulted in the mismatch: Build Number
    ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

Я вижу, что он пытается использовать перенаправленный файл, и я проверил, что этот файл находится в моей папке bin, но, как указано выше, он все еще не работает.

У меня есть следующее: мой packages.config...

      ...
      <package id = "Microsoft.AspNet.Cors" version = "5.2.4" targetFramework = "net47" />
      <package id = "Microsoft.AspNet.WebApi" version = "5.2.4" targetFramework = "net47" />
      <package id = "Microsoft.AspNet.WebApi.Client" version = "5.2.4" targetFramework = "net47" />
      <package id = "Microsoft.AspNet.WebApi.Core" version = "5.2.4" targetFramework = "net47" />
      <package id = "Microsoft.AspNet.WebApi.Cors" version = "5.2.4" targetFramework = "net47" />
      <package id = "Microsoft.AspNet.WebApi.Owin" version = "5.2.4" targetFramework = "net47" />
      <package id = "Microsoft.AspNet.WebApi.Tracing" version = "5.2.4" targetFramework = "net47" />
      <package id = "Microsoft.AspNet.WebApi.WebHost" version = "5.2.4" targetFramework = "net47" /> 
      ...
      <package id = "Swashbuckle" version = "5.6.0" targetFramework = "net47" />
      <package id = "Swashbuckle.Core" version = "5.6.0" targetFramework = "net47" />
      ...

Есть ли у кого-нибудь предложения о том, что еще я могу попробовать здесь?

Заранее спасибо!

Журнал говорит, что пытается перенаправить на 5.2.3.0. Что случилось?

dontpanic 21.01.2019 04:52

Ой!! Я только что понял, что в моем web.config было более одного перенаправления! Добавлен новый сингл <bindingRedirect oldVersion = "0.0.0.0-5.1.0.0" newVersion = "5.2.4.0" /> и теперь исправлен.

peterc 21.01.2019 06:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
2
1 959
0

Другие вопросы по теме