web-dev-qa-db-fra.com

SignalR ne fonctionne plus "Aucun assemblage trouvé contenant un OwinStartupAttribute"

J'ai un projet d'API Web qui utilise SignalR qui a commencé à me donner fréquemment des erreurs "impossible de trouver Microsoft.AspNet.Signal.Core" qui n'ont été corrigées qu'en effectuant une reconstruction complète dans Visual Studio.

J'ai mis à niveau SignalR et OWIN dans Nuget pour essayer de résoudre ce problème, mais maintenant j'obtiens toujours "Les erreurs suivantes se sont produites lors de la tentative de chargement de l'application. - Aucun assembly trouvé contenant un OwinStartupAttribute. - Aucun assembly trouvé contenant un démarrage ou [AssemblyName] .Classe de démarrage "

Je suis la seule personne de mon équipe à avoir cette erreur - le même code fonctionne bien sur d'autres machines.

J'ai une classe de démarrage:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Owin;
using Owin;

[Assembly: OwinStartup(typeof(MyProject.Startup))]
namespace MyProject
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }
}

J'ai également essayé d'ajouter la clé AppStartup au web.config:

<add key="owin:appStartup" value="MyProject.Startup, MyProject" />

J'ai les références suivantes dans mon projet WebApi:

Microsoft.AspNet.SignalR.Core (2.1.0.0)
Microsoft.AspNet.SignalR.SystemWeb (2.1.0.0)
Microsoft.Owin (2.0.2.0)
Microsoft.Owin.Host.SystemWeb (2.0.2.0)
Microsoft.Owin.Security (2.0.2.0)
Owin (1.0.0)

J'utilise IIS 8.5 sur Windows 8 64Bit

16
SturmUndDrang

J'ai eu cette erreur lors de l'intégration d'Identity Framework 2.0. L'ajout du suivant dans Web.config fichier du projet l'a résolu:

<appSettings>
  <add key="owin:AutomaticAppStartup" value="false" />
</appSettings>
31
N_E

Il semble que Nuget n'ait pas correctement mis à jour les dépendances de SignalR (il doit vérifier que la version est à portée et ne pas se soucier de la mise à jour), donc 2 versions des assemblys OWIN étaient utilisées dans la solution.

Ainsi, dans le projet WebApi: SignalR 2.1.0 et Microsoft.Owin 2.0.2.0

et dans un autre projet: SignalR 2.1.0 et Microsoft.Owin 2.0.1.0

Visual Studio ne détecte pas non plus les incompatibilités de version lors de la génération, donc lorsque le projet Web se charge, OWIN génère une erreur désagréable (les assemblys Microsoft.Owin 2.0.1.0 ont été copiés dans le dossier bin du projet Web).

Pour résoudre ce problème, j'ai dû "mettre à jour le package Microsoft.Owin -version 2.0.2.0" sur le projet obsolète, nettoyer et reconstruire tout.

MISE À JOUR:

Toujours le même problème. Je suppose maintenant que c'est un problème d'incompatibilité entre SignalR 2.1.0 et Owin 2.0.2.0.

2
SturmUndDrang