【问题标题】:How to configure SignalR with Global.asax instead of Startup.cs in ASP MVC?如何在 ASP MVC 中使用 Global.asax 而不是 Startup.cs 配置 SignalR?
【发布时间】:2019-06-20 06:40:57
【问题描述】:

SignalR 需要 Owin 启动类,但我的应用程序使用 Global.asax 类。

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

如果我添加启动类,我的asp MVC项目将有两个启动类(全局和启动),可以吗?或者我应该只应用其中一个并将我的全局课程移动到启动课程?

【问题讨论】:

    标签: c# asp.net-mvc signalr


    【解决方案1】:

    您可以标记程序集中的哪个类将由Owin 在启动时自动使用。

    在我的示例中,我在 Startup 中声明它并使用 OwinStartup 指向它 例如

    using Microsoft.AspNet.SignalR;
    using Microsoft.Owin;
    using System.Net;
    [assembly: OwinStartup(typeof(YourProject.Startup))]
    
    
    namespace YourProject
    {
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                var hubConfiguration = new HubConfiguration
                {
                    EnableDetailedErrors = true
                };
                app.MapSignalR(hubConfiguration);
            }
        }
    }
    

    如果您使用Owin,则必须使用Startup 类而不是Global.asax

    【讨论】:

    • 谢谢,但是 global.asax 类会发生什么,我应该移动我的代码来启动,还是我可以保留它们?请澄清
    • 主要目的是在应用启动时触发signalR设置。我建议你可以把它移到Startup 类。
    猜你喜欢
    • 1970-01-01
    • 2022-07-13
    • 2017-02-01
    • 2015-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2016-02-04
    相关资源
    最近更新 更多