web-dev-qa-db-fra.com

Conflit de dépendance SignalR 2.0.2 et Owin 2.0.0

J'essaie de faire fonctionner SignalR dans un projet MVC5 avec des comptes individuels.

Le projet MVC a par défaut Owin 2.0.0 et tous les composants Owin. * Sont également 2.0.0.

J'ai donc utilisé NuGet pour obtenir tous les packages SignalR, il a automatiquement résolu les dépendances et téléchargé la version 2.0.2.

Le projet génère une erreur au démarrage avec le message suivant:

Impossible de charger le fichier ou l'assembly 'Microsoft.Owin, Version = 2.0.1.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35'

J'ai également essayé de mettre à niveau Owin vers 2.1.0 mais cela n'a pas aidé non plus.

Quelqu'un at-il rencontré le même problème et quelle a été la solution?

29
neo112

Vous pouvez mettre à jour ces références à la dernière version que j'ai trouvée (maintenant c'est 2.1.0):

Install-Package Microsoft.Owin -Version 2.1.0
Install-Package Microsoft.Owin.Security -Version 2.1.0

Et assurez-vous que votre Web.config possède ces redirections de liaison pour la version 2.1.0:

<configuration>
  <runtime>
    <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.1.0.0" newVersion="2.1.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

Ou vous pouvez mettre à jour ces références à la version 2.0.1:

Install-Package Microsoft.Owin -Version 2.0.1
Install-Package Microsoft.Owin.Security -Version 2.0.1

Et assurez-vous que votre Web.config a ces redirections de liaison pour la version 2.0.1:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
49
Akira Yamamoto

Vous avez peut-être besoin d'une redirection de liaison dans votre .config

<configuration>
<runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="2.0.2.0" />
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.0.2.0" newVersion="2.0.2.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>
</configuration>
3
Jim Bolla

Dans mon cas, lorsque j'ai hébergé mon service WCF qui a la fonctionnalité SignalR dans IIS et quand je vais à mon IIS gestionnaire et à mon application où j'ai hébergé mon service faites un clic droit sur le fichier svc et cliquez sur Browse, j'obtenais cette erreur. J'ai donc fait ce qui suit

Dans mon Visual Studio, Tools -> Library Package Manager -> Package Manager Console

Je me suis assuré d'avoir sélectionné mon projet de site Web qui hébergeait mon service WCF et donné ci-dessous deux commandes l'une après l'autre

uninstall-package Microsoft.AspNet.SignalR

install-package Microsoft.AspNet.SignalR

Après cela, je reconstruis juste ma solution. Je suis allé au gestionnaire IIS et à mon application où j'ai hébergé mon service, cliquez avec le bouton droit sur svc fichier et cliquez sur Browse, j'ai pu voir mon service s'exécuter dans IE .

1
Ziggler