Asp.net
.NET Signalr MapConnection 已過時?
我是 .Net 和 SignalR 的新手。我正在查看一位前同事編寫的一些程式碼,他將此行添加到 Route Config 中,該行現在拋出錯誤,說它已過時,但我讀過的所有文件都建議以這種方式映射連接。
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. 添加一個 OwinStartup類,並在其Configuration方法中呼叫您收到MapConnection<T>的參數。app那應該行得通。檢查這里和這裡。
你可以用這篇文章,
1.在全域應用類中,去掉對MapHubs的呼叫。
protected void Application_Start(object sender, EventArgs e) { RouteTable.Routes.MapHubs(); }2.右鍵點擊解決方案,然後選擇添加、新建項…。在對話框中,選擇Owin Startup Class。將新類命名為 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(); } } }