Pergunta

Erro

'Owin.IAppBuilder' não contém uma definição para 'MapSignalR' e nenhum método de extensão 'MapSignalR' aceitando um primeiro argumento do tipo 'Owin.IAppBuilder' foi encontrado (está faltando uma diretiva using ou uma referência de montagem?)

Código

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

Qualquer ajuda seria muito apreciada...

Atualizar

sinalR versão 2.0.3
Microsoft Owin versão 2.0.2
Owin versão 1.0.0
Visual Studio 2012

Foi útil?

Solução

Instale apenas esta pepita:

Pacote de instalação Microsoft.AspNet.WebApi.OwinSelfHost

Outras dicas

Finalmente consegui resolvê-lo adicionando sinalR dependências antes de adicionar signalR de pacotes NuGet
Etapas que segui:

  1. Adicionado Microsoft.Owin //version 2.0.1
  2. Adicionado Microsoft.Owin.Security //version 2.0.1
  3. Adicionado Microsoft Asp.Net SignalR

A razão pela qual descobri foi um problema com version 2.0.2 de Microsoft.Owin e Microsoft.Owin.Security e então adicionando uma classe chamada Startup.cs com o seguinte código:

using Microsoft.Owin;
using Owin;

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

Adicionando diretamente Microsoft Asp.Net SignalR do NuGet adiciona version 2.0.2 of Microsoft.Owin and Microsoft.Owin.Security o que cria o problema.
Espero que ajude alguém...!!

Update-Package Owin -Reinstall

funcionou para mim

Instale o pacote Nuget: Microsoft.AspNet.Identity.Owin

Usando MVC5, insira seu arquivo Startup.cs.

Adicionar IAppBuilder appBuilder para Configure():

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

Então, sob

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

adicionar appBuilder.MapSignalR();

O projeto mvc vazio do Asp.Net 5 pronto para uso cria algo parecido com isto

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



       }
    }
}

Demorei um pouco para perceber que Configure deveria ser Configuration e IApplicationBuilder precisa ser IAppBuilder.Também retirei a anotação assembly acima do namespace.

Acabei desistindo de tentar usar o Asp.Net 5 e não consegui fazê-lo funcionar.Voltei para 4.6 e tudo funcionou bem.Segui este passo a passo http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

Eu tenho esse mesmo problema.Acontece que meu arquivo .csproj tem a primeira linha:

O projeto ToolsVersion="12.0" não corresponde aos meus outros arquivos.Alterei para:

Ferramentas de ProjetoVersão="14.0"

e não há mais problemas de compilação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top