Ответ 1
Да, вы должны использовать IAppBuilder
. Добавьте класс Owin Startup
и его метод Configuration
вызовите MapConnection<T>
в аргументе app
, который вы получите. Это должно сработать. Проверьте здесь и здесь.
Я новичок в .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
Да, вы должны использовать IAppBuilder
. Добавьте класс Owin Startup
и его метод Configuration
вызовите MapConnection<T>
в аргументе app
, который вы получите. Это должно сработать. Проверьте здесь и здесь.
Вы можете использовать эту статью,
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();
}
}
}
Чтобы включить SignalR в своем приложении, создайте класс Startup со следующим:
с использованием Owin;
пространство имен MyWebApplication { публичный класс Startup { public void Configuration (приложение IAppBuilder) { app.MapSignalR(); } } }