Je suis ce tutoriel pas à pas
Et je reçois une exception sur la ligne marquée ci-dessous
string url = "http://localhost:8080";
using (WebApp.Start(url)) //<------ error on this line
{
Console.WriteLine("Server running on {0}", url);
Console.ReadLine();
}
Message d'erreur:
Impossible de charger le fichier ou l'assembly 'Microsoft.Owin.Security, Version = 2.0.1.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35' ou l'une de ses dépendances. La définition du manifeste de l'Assemblée localisée ne correspond pas à la référence de l'Assemblée. (Exception de HRESULT: 0x80131040)
Plus d'informations:
Dans ma solution de projet, la référence pointe vers la dll dans le dossier des packages de NuGet.
Cela a été ajouté dans mon fichier App.config par 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>
Dans le dossier des packages, packages\Microsoft.Owin.Security.2.0.0\lib\net45
, la version du fichier de Microsoft.Owin.Security.dll est 2.020911.395.
Ok je l'ai résolu.
J'ai dû mettre à jour mon paquet Microsoft.Owin.Security à 2.1.0 avec cette commande
Install-Package Microsoft.Owin.Security -Version 2.1.0
Et modifiez les liaisons dans mon App.config comme ceci
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.0.0" newVersion="2.1.0.0" />
Dans mon cas, j'ai eu deux projets:
MyProj.MvcWeb
(une application MVC qui a référencé Microsoft.Owin.Security 3.0.0
)MyProj.Data.Entities
(une bibliothèque de classe qui a référencé Microsoft.Owin.Security 2.1.0
; je ne sais pas comment cela s'est passé)La mise à niveau de Microsoft.Owin.Security
de 2.1.0
vers 3.0.0
dans le projet MyProj.Data.Entities
a résolu le problème pour moi.
J'ai pris votre idée, merci pour la recherche que vous avez faite, et je l'ai faite comme ceci:
get-project PerfSurf | Update-Package Microsoft.Owin.Security
C'est beaucoup plus simple, et cela va se mettre à jour.
Ignorer cette partie (get-project PerfSurf
), car je l'utilise parce que j'ai plusieurs projets de test et que je ne veux pas tous les mettre à jour
Simple, Accédez à votre fichier web.config. Modifiez la balise "bindingRedirect" pour Microsoft.Owin, Microsoft.Owin.Security.OAuth, Microsoft.Owin.Security.Cookies, Microsoft.Owin.Security comme suit:
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.1.0" />
cela pourrait fonctionner.
Dans mon cas, cette erreur de code survient lors de la mise à jour de la base de données. J'ai mis "Set a as startUp a Project" dans le projet avec migration.it m'a aidé
Je l'ai corrigé en changeant ma balise de configuration Web.config:
à partir de ceci:
<configuration xmlns="http://schemas.Microsoft.com/.NetConfiguration/v2.0">
pour ça:
<configuration>
je ne sais pas pourquoi cela fonctionne.
dans mon cas, il s’est avéré que le problème était IIS express. Une fois que j'ai changé le débogage en IIS local, l'erreur a disparu.
Renommer app.config en web.config fonctionne pour moi. Ou faites simplement une copie de app.config et appelez-la web.config
Cet assemblage ne correspond pas à ce qui a été demandé, c'est pourquoi vous obtenez cette erreur. vérifiez la version de Microsoft.Owin.Security dans le GAC. Voir aussi ici