【问题标题】:Can I use SignalR 2.2 in an ASP5 vNext (beta8) application?我可以在 ASP5 vNext (beta8) 应用程序中使用 SignalR 2.2 吗?
【发布时间】:2016-03-01 00:05:30
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    从 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

    【讨论】:

      【解决方案2】:

      只需在您的 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);
                  }
              }
          }
      }
      

      【讨论】:

      • 这不起作用。 SignalRStartup 中的 Configuration 方法永远不会被调用。我还尝试将该方法添加到默认创建的 Startup.cs 文件中,并且它也不会在那里被调用。您链接的教程适用于 MVC5,但 vNext 项目使用 MVC6。
      • 我不确定你从哪里开始。如果您遵循这些指示(使用比我更简单的启动),它们应该在 6 和 5 中同样有效,尽管我没有亲自尝试 6。 SignalR 是一项独立于 ASP.NET 的技术,并将继续与它一起工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多