我可以在ASP5 vNext(beta8)应用程序中使用SignalR 2.2吗?

时间:2015-10-26 12:14:54

标签: asp.net signalr asp.net-core

根据ASP.Net 5路线图,SignalR 3无法进入RTM。 https://github.com/aspnet/Home/wiki/Roadmap

是否可以在vNext项目中使用SignalR 2.2?我该如何致电MapSignalR()? Startup.cs中的Configure方法有一个IApplicationBuilder,但是想要在IAppBuilder上调用SignalR的扩展方法,是否可能有第二个Startup类?我该如何设置呢?

2 个答案:

答案 0 :(得分:4)

从RC1开始,请参阅IAppBuilderBridge sample以使SignalR 2.2在RC1上运行。您只需从该项目中获取KatanaIApplicationBuilderExtensions类,然后以这种方式将signalR添加到Startup类:

app.UseAppBuilder(
  appBuilder =>
  {
      appBuilder.MapSignalR();
  });

我在UseMvc之后添加了它。

刚刚在RC1和IIS Express下的一个干净的新MVC项目上测试自己。至少Tutorial样本工作得很好。正如Todd Sprang在评论中指出的那样,它应该可行,因为它不依赖于更高级别的ASP.NET组件。

另见this blog post

答案 1 :(得分:0)

只需在App_Start文件夹中创建此类,然后修改即可。

[assembly: OwinStartup(typeof(SignalRStartup))]

namespace Comp.Prod.Web
{
    public class SignalRStartup
    {
        public void Configuration(IAppBuilder app)
        {
            try
            {
                var hubConfig = new HubConfiguration
                {
#if DEBUG
                    EnableDetailedErrors = true
#else
                EnableDetailedErrors = false
#endif
                };

                GlobalHost.DependencyResolver.UseSqlServer(Settings.Default.BackplaneConnectionString);

                app.MapSignalR(hubConfig);

                GlobalHost.HubPipeline.RequireAuthentication();
            }
            catch (Exception e)
            {
                Debug.WriteLine("Following exception thrown from SignalRStartup:");
                Debug.WriteLine(e);
            }
        }
    }
}