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

.NET Signalr MapConnection устарел?

Я новичок в .Net и SignalR. Я просматриваю код, написанный бывшим сотрудником, и добавил эту строку в конфигурацию маршрута, которая теперь бросает ошибки, говоря об устаревшей, но все документации, которые я прочитал, сопоставление соединений таким образом.

namespace FailureInvestigationToolbox {
public class RouteConfig {
    public static void RegisterRoutes( RouteCollection routes ) {
        routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );

        routes.MapRoute(
            name :"Default",
            url :"{controller}/{action}/{id}",
            defaults :new {
                controller = "fit",
                action = "Index",
                id = UrlParameter.Optional
            }
        );

        RouteTable.Routes.MapConnection<TaskListPersistence>("taskpersist", "/taskpersist");
    }
}
}

Ошибка:

System.Web.Routing.SignalRRouteExtensions.MapConnection<T>    
(System.Web.Routing.RouteCollection, string, string)' is obsolete: 
'Use IAppBuilder.MapSignalR<TConnection> in an Owin Startup class. See
http://go.microsoft.com/fwlink/?LinkId=320578 for more details.'  
C:\fit\FailureInvestigationToolbox\App_Start\RouteConfig.cs

Возможно ли, что у меня что-то не так с моей установкой SignalR, или это способ IAppBuilder для сопоставления вещей, что я должен делать... если да, то как?

Я использую SignalR 2.0.3

4b9b3361

Ответ 1

Да, вы должны использовать IAppBuilder. Добавьте класс Owin Startup и его метод Configuration вызовите MapConnection<T> в аргументе app, который вы получите. Это должно сработать. Проверьте здесь и здесь.

Ответ 2

Вы можете использовать эту статью,

1.В глобальном классе приложения удалите вызов MapHubs.

protected void Application_Start(object sender, EventArgs e)
{
 RouteTable.Routes.MapHubs();
}

2. Вернитесь к решению и выберите "Добавить", "Создать элемент". В диалоговом окне выберите "Класс запуска Owin". Назовите новый класс Startup.cs.

3. Замените содержимое Startup.cs следующим кодом:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{

    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }
}

Ответ 3

Чтобы включить SignalR в своем приложении, создайте класс Startup со следующим:

с использованием Owin;

пространство имен MyWebApplication {   публичный класс Startup   {       public void Configuration (приложение IAppBuilder)       {           app.MapSignalR();       }   } }