Подтвердить что ты не робот

Ошибка SignalR 2.0: не удалось загрузить файл или сборку Microsoft.Owin.Security

Я следую этому руководству шаг за шагом.

http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-signalr-20-self-host

И я получаю исключение на строке, помеченной ниже

        string url = "http://localhost:8080";
        using (WebApp.Start(url)) //<------ error on this line
        {
            Console.WriteLine("Server running on {0}", url);
            Console.ReadLine();
        }

Сообщение об ошибке:

Не удалось загрузить файл или сборку "Microsoft.Owin.Security, Version = 2.0.1.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" или одна из его зависимостей. Расположенное определение манифеста сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Дополнительная информация:

В моем решении проекта ссылка ссылается на dll в папке пакетов из NuGet

Это было добавлено в моем файле App.config с помощью NuGet

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

В папке пакетов packages\Microsoft.Owin.Security.2.0.0\lib\net45 файловая версия Microsoft.Owin.Security.dll - 2.020911.395

4b9b3361

Ответ 1

Хорошо, я решил это.

Мне пришлось обновить пакет Microsoft.Owin.Security до версии 2.1.0 с помощью этой команды

Install-Package Microsoft.Owin.Security -Version 2.1.0

И измените привязки в моем App.config как это

<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />

Ответ 2

В моем случае у меня было два проекта:

  • MyProj.MvcWeb (приложение MVC, на которое ссылаются Microsoft.Owin.Security 3.0.0)
  • MyProj.Data.Entities (библиотека классов, на которую ссылается Microsoft.Owin.Security 2.1.0, не знаете, как это произошло)

Обновление Microsoft.Owin.Security от 2.1.0 до 3.0.0 в проекте MyProj.Data.Entities исправило проблему для меня.

Ответ 3

Я взял вашу идею, спасибо за исследование, которое вы сделали, и я сделал это следующим образом:

get-project PerfSurf | Update-Package Microsoft.Owin.Security

Это намного проще, и это будет обновлять манифест.

Игнорировать эту часть (get-project PerfSurf), поскольку я использую ее, потому что у меня есть несколько тестовых проектов и не хочу их обновлять.

Ответ 4

Простой, Перейдите в файл web.config. Измените тег "bindingRedirect" для Microsoft.Owin, Microsoft.Owin.Security.OAuth, Microsoft.Owin.Security.Cookies, Microsoft.Owin.Security следующим образом:

<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.1.0" />

это может сработать.

Ответ 5

Эта сборка не соответствует запросам, поэтому вы получаете эту ошибку. проверьте версию Microsoft.Owin.Security в GAC. Также см. здесь

Ответ 6

Переименование app.config в web.config работает для меня. Или просто сделайте копию app.config и назовите его web.config

Ответ 7

В моем случае у меня есть эта ошибка в коде во время "базы данных обновлений". Я поставил "Установить как запуск проекта" в проекте с помощью mig.it помог мне

Ответ 8

Я исправил его, изменив свой тег конфигурации Web.config:

из этого:

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

:

<configuration>

Не знаю, почему это работает.

Ответ 9

в моем случае это оказалось проблемой, связанной с IIS. Как только я изменил отладку на локальный IIS, ошибка исчезла.