Подтвердить что ты не робот

"Owin.IAppBuilder" не содержит определения для "MapSignalR"

Ошибка

"Owin.IAppBuilder" не содержит определения для "MapSignalR", и не может быть найден метод расширения "MapSignalR", принимающий первый аргумент типа "Owin.IAppBuilder" (вам не хватает директивы using или сборка?)

код

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

Любая помощь будет принята с благодарностью...

Update

signalR version 2.0.3
Microsoft Owin версия 2.0.2
Owin версия 1.0.0
Visual Studio 2012

4b9b3361

Ответ 1

Установите этот nuget только:

Установочный пакет Microsoft.AspNet.WebApi.OwinSelfHost

Ответ 2

Наконец, удалось решить эту проблему, добавив зависимости signalR до добавления сигнала R из пакетов NuGet

Шаг I:

  • Добавлен Microsoft.Owin //version 2.0.1
  • Добавлен Microsoft.Owin.Security //version 2.0.1
  • Добавлен Microsoft Asp.Net SignalR

Причина, по которой я обнаружил, была проблема с version 2.0.2 Microsoft.Owin и Microsoft.Owin.Security, а затем добавление класса с именем Startup.cs со следующим кодом:

using Microsoft.Owin;
using Owin;

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

Непосредственное добавление Microsoft Asp.Net SignalR из NuGet добавляет version 2.0.2 of Microsoft.Owin and Microsoft.Owin.Security, что создает проблему.
Надеюсь, это поможет кому-то...!!

Ответ 3

Update-Package Owin -Reinstall

работал у меня

Ответ 4

Используя MVC5, введите файл Startup.cs.

Добавьте IAppBuilder appBuilder в Configure():

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

Тогда, при

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

добавить appBuilder.MapSignalR();

Ответ 5

Asp.Net 5 пустой проект mvc из коробки создает что-то похожее на это

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



       }
    }
}

Пришло время заметить, что Configure должна была быть Конфигурация, а IApplicationBuilder должен быть IAppBuilder. Я также снял аннотацию сборки над пространством имен.

Я закончил сбой, пытаясь использовать Asp.Net 5, и не смог заставить его работать. Вернулся к 4.6, и все сработало нормально. Следуя этому пошаговому руководству http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

Ответ 6

У меня была такая же проблема. Выводит мой файл .csproj в первую строку:

Project ToolsVersion = "12.0" не соответствует моим другим файлам. Изменено:

Project ToolsVersion = "14.0"

и больше не компилировать.

Ответ 7

Установите пакет Nuget: Microsoft.AspNet.Identity.Owin