Ошибка 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
Ответы
Ответ 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, ошибка исчезла.