繁体   English   中英

SignalR 2集线器未与ASP MVC 5 Web应用一起部署

[英]SignalR 2 hub is not deployed with ASP MVC 5 web app

我有一个ASP.NET MVC应用程序,该应用程序引用了另一个项目,即SignalR应用程序。 网络偶尔会调用SignalR应用程序。 不久前,我已经在Microsoft Azure服务器上部署了Web。 部署还包括SignalR集线器,可通过mysite.azurewebsites.net/signalr/hubs获得该集线器。

现在,我在Web应用程序中进行了一些更新,并希望重新上传整个解决方案。 但是,我无法同时部署两个项目。 我可以部署SignalR集线器,也可以部署Web应用程序,但是mysite.azurewebsites.net/signalr/hubs找不到任何集线器。

起初,我认为这是由ASP MVC应用程序中的路由更改引起的。 我变了

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        )

 routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}",
            defaults: new { controller = "Home", action = "Index" }
        );

但是,即使还原了更改后,也无法同时部署两个应用程序。 我不明白问题可能在哪里。

我进行的一项重大更改是将ASP.NET Identity程序包添加到我的网站。 该软件包还使用OWIN库(类似于SignalR)。 这可能是问题吗? 我希望不会,因为那样的话我将不得不重新做整个数据库。

编辑

我尝试将Startup类移到ASP.MVC应用程序中:

[assembly: OwinStartup(typeof(MyMvcApp.Startup))]
namespace MyMvcApp
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            // Any connection or hub wire up and configuration should go here
            app.MapSignalR();
        }
    }
}

但是它似乎没有在当前程序集之外找到任何集线器。

问题是我已经覆盖了Web.config中的启动:

<add key="owin:AppStartup" value="MyMvcApp.IdentityConfig" />

删除此行并将代码从IdentityConfig.cs移至Startup.cs解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM