web-dev-qa-db-ger.com

SignalR 2.0-Fehler: Datei oder Assembly Microsoft.Owin.Security konnte nicht geladen werden

Ich folge diesem Tutorial Schritt für Schritt

http://www.asp.net/signalr/overview/signalr-20/getting-gestartet-mit-signalr-20/tutorial-signalr-20-self-Host

Und ich bekomme eine Ausnahme in der unten markierten Zeile

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

Fehlermeldung:

Datei oder Assembly 'Microsoft.Owin.Security, Version = 2.0.1.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die Manifestdefinition der gefundenen Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)

Mehr Info:

In meiner Projektlösung verweist der Verweis auf die DLL im Paketordner von NuGet

Dies wurde von NuGet in meine App.config-Datei eingefügt

<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>

Im Paketordner packages\Microsoft.Owin.Security.2.0.0\lib\net45 lautet die Dateiversion von Microsoft.Owin.Security.dll 2.020911.395

45
Null Reference

Ok, ich habe es gelöst.

Ich musste mein Microsoft.Owin.Security-Paket mit diesem Befehl auf 2.1.0 aktualisieren

Install-Package Microsoft.Owin.Security -Version 2.1.0

Und ändern Sie die Bindungen in meiner App.config wie folgt

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

In meinem Fall hatte ich zwei Projekte:

  • MyProj.MvcWeb (eine MVC-Anwendung, auf die Microsoft.Owin.Security 3.0.0 verwiesen wurde)
  • MyProj.Data.Entities (eine Klassenbibliothek, die auf Microsoft.Owin.Security 2.1.0 verwies; nicht sicher, wie das passiert ist)

Das Upgrade von Microsoft.Owin.Security von 2.1.0 auf 3.0.0 im Projekt MyProj.Data.Entities hat das Problem für mich behoben.

23
Jon Sagara

Ich habe Ihre Idee genommen, danke für Ihre Nachforschungen, und ich habe es so gemacht:

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

Es ist viel einfacher und dies wird sich selbst aktualisieren.

Ignoriere diesen (get-project PerfSurf) Teil, da ich ihn benutze, weil ich mehrere Testprojekte habe und nicht alle aktualisieren möchte

7
deadManN

Einfach.... Wechseln Sie zu Ihrer Datei web.config. Ändern Sie das Tag "bindingRedirect" für Microsoft.Owin, Microsoft.Owin.Security.OAuth, Microsoft.Owin.Security.Cookies, Microsoft.Owin.Security wie folgt:

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

das könnte funktionieren.

4

In meinem Fall habe ich diesen Fehler zuerst während der "Update-Datenbank" im Code. Ich habe "Projekt als Startup für Projekt festlegen" mit "migration.it" eingefügt. Es hat mir geholfen

0
user7358060

Ich habe es behoben, indem ich mein Konfigurations-Tag "Web.config" geändert habe:

davon:

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

zu diesem:

<configuration>

weiß nicht, warum das funktioniert.

0
async3

in meinem Fall stellte sich heraus, dass es sich um ein IIS ausdrückliches Problem handelte. Nachdem ich das Debugging auf Local IIS geändert hatte, war der Fehler behoben.

0
Andrew Gale

Das Umbenennen von app.config in web.config funktioniert für mich. Oder machen Sie einfach eine Kopie von app.config und nennen Sie sie web.config

0
Dez Udezue

Diese Assembly stimmt nicht mit dem überein, was angefordert wurde, weshalb Sie diesen Fehler erhalten. Überprüfen Sie die Microsoft.Owin.Security-Version im GAC. Siehe auch hier

0
Shachaf.Gortler