Ich folge diesem Tutorial Schritt für Schritt
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
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" />
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.
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
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.
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
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.
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.
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
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