web-dev-qa-db-fra.com

'Owin.IAppBuilder' ne contient pas de définition pour 'MapSignalR'

Erreur

'Owin.IAppBuilder' ne contient pas de définition pour 'MapSignalR' et aucune méthode d'extension 'MapSignalR' n'accepte un premier argument de type 'Owin.IAppBuilder' (manque-t-il une directive using ou une référence Assembly?) ?)

Code

using Microsoft.Owin;
using Owin;

[Assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            app.MapSignalR();
        }
    }
}  

Toute aide serait grandement appréciée ...

Mettre à jour

signalR version 2.0.3
Microsoft Owin version 2.0.2
Owin version 1.0.0
Visual Studio 2012

28
Bhavik

Installez uniquement ce nuget:

Package d'installation Microsoft.AspNet.WebApi.OwinSelfHost

47
mggSoft

Enfin, nous avons pu résoudre ce problème en ajoutantsignalRdépendances avant d'ajouter signalR à partir des paquets NuGet.
Les pas que j'ai suivis: 

  1. Ajouté Microsoft.Owin //version 2.0.1
  2. Ajouté Microsoft.Owin.Security //version 2.0.1
  3. Ajout de Microsoft Asp.Net SignalR 

J'ai découvert un problème avec version 2.0.2 de Microsoft.Owin et Microsoft.Owin.Security, puis l'ajout d'une classe nomméeStartup.csavec le code suivant: 

using Microsoft.Owin;
using Owin;

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

Ajouter directement Microsoft Asp.Net SignalR à partir de NuGet ajoute version 2.0.2 of Microsoft.Owin and Microsoft.Owin.Security, ce qui crée le problème.
J'espère que ça aide quelqu'un ... !!

20
Bhavik
Update-Package Owin -Reinstall

a travaillé pour moi

11
Saboor Awan

En utilisant MVC5, entrez votre fichier Startup.cs. 

Ajoutez IAppBuilder appBuilder à Configure():

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IAppBuilder appBuilder)
    {

Puis sous 

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

ajouter appBuilder.MapSignalR();

2
Adam Reed

Asp.Net 5 projet mvc vide prêt à l'emploi crée quelque chose qui ressemble à ceci 

 using Microsoft.Owin;
using Owin;
namespace DeadlyChat
{
public class Startup
{
    // For more information on how to configure your application, visit http://go.Microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app)
    {
        app.MapSignalR();



       }
    }
}

Il m'a fallu un certain temps pour constater que Configure était supposé être une configuration et que IApplicationBuilder devait être IAppBuilder. J'ai également retiré l'annotation Assembly au-dessus de l'espace de noms.

J'ai fini par perdre mon temps à essayer d'utiliser Asp.Net 5, mais je n'ai pas réussi à le faire fonctionner. Nous sommes revenus à 4,6 et tout a bien fonctionné. Suivi de cette procédure http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

1
DeadlyChambers

Installer le paquet Nuget: Microsoft.AspNet.Identity.Owin

1
Arsen Khachaturyan

J'ai eu le même problème. Il s'avère que mon fichier .csproj est la première ligne:

Project ToolsVersion = "12.0" ne correspond pas à mes autres fichiers. Changé pour:

Projet ToolsVersion = "14.0"

et plus de problème de compilation. 

1
zillabyte