2014-04-14 7 views
22

Error ‚MapSignalR‘

‚Owin.IAppBuilder‘ keine Definition für ‚MapSignalR‘ und keine Erweiterungsmethode ‚MapSignalR‘ enthalten Akzeptieren eines ersten Argument Typ 'Owin.IAppBuilder' gefunden werden (möglicherweise fehlt eine using-Direktive oder ein Assemblyverweis?)‚Owin.IAppBuilder‘ enthält keine Definition für

-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(); 
     } 
    } 
} 

Jede Hilfe wäre sehr geschätzt ...

aktualisieren

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

Antwort

35

installieren Nur diese nuget:

Install-Package Microsoft.AspNet.WebApi.OwinSelfHost

+2

Müssen diese [nuget] installieren (https://www.nuget.org/packages/Microsoft.Owin.Cors/) auch: Install-Paket Microsoft.Owin.Cors-Version 3.1.0 – feganmeister

15

endlich in der Lage war, es zu lösen durch Zugabe signalR Abhängigkeiten vor dem Hinzufügen von SignalR von NuGet Packages
Schritt I folgte:

  1. Added Microsoft.Owin //version 2.0.1
  2. Added Microsoft.Owin.Security //version 2.0.1
  3. hinzugefügt Microsoft Asp.Net SignalR

Der Grund, warum ich entdeckte ein Problem mit version 2.0.2 von Microsoft.Owin war und Microsoft.Owin.Security und dann eine Klasse mit dem Namen Startup.cs mit folgendem Code hinzufügen:

using Microsoft.Owin; 
using Owin; 

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

direkt hinzufügen Microsoft Asp.Net SignalR von NuGet version 2.0.2 of Microsoft.Owin and Microsoft.Owin.Security fügt hinzu, die das Problem verursacht.
Hoffe es hilft jemandem ... !!

+0

Dank! Du hast mich davor bewahrt, an einem Freitagabend sehr frustriert zu werden! – chavakane

+0

FYI ab 2/15/2015 scheint dies gelöst worden zu sein. Ich habe Microsoft.AspNet.SignalR nur direkt installiert und das obige funktionierte gut. –

+0

Dies ist eine alte Lösung. Verweisen Sie die Antwort von @mggSoft für die neueste Antwort. – Bhavik

9
Update-Package Owin -Reinstall 

für mich gearbeitet

+0

Arbeitete auch für mich Danke. Ich habe die anderen oben genannten Lösungen ausprobiert und sie haben nicht funktioniert. Dieser hat getan. – jward01

0

Asp.Net 5 leer mvc Projekt aus der Box schafft etwas das sieht so aus

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(); 



     } 
    } 
} 

Nahm mich eine Weile, um t zu bemerken hut Configure sollte Konfiguration sein und IApplicationBuilder muss IAppBuilder sein. Ich zog auch die Assembly Annotation über den Namespace.

Ich verwundete Verschrottung versucht, Asp.Net 5 zu verwenden, konnte es nicht zum Funktionieren bringen. Ging zurück zu 4.6 und alles hat gut funktioniert.Gefolgt dieser Walkthrough http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

1

Ich hatte das gleiche Problem. Stellt meine .csproj Datei die erste Zeile aus:

Project ToolsVersion = "12.0" stimmte nicht mit meinen anderen Dateien überein. Changed es an:

Projekt Toolsversion = "14.0"

und nicht mehr Problem kompilieren.

2

Mit MVC5 geben Sie Ihre Startup.cs-Datei ein.

hinzufügen IAppBuilder appBuilder zu Configure():

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

Dann unter

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

hinzufügen appBuilder.MapSignalR();