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