signalR在启动时更改默认站点

时间:2017-02-14 19:19:30

标签: c# asp.net-mvc signalr

我有一个应用程序,我有2个实例在同一个IIS服务器上运行。

  • /站点1
  • /站点2

两者中的相同源代码,只是不同的设置。我在两个站点都有signalR代码,但我希望Site2使用Site1的signalR服务器。

我有这个工作,所以如果在Site1上进行了更改,Site2知道刷新,并且工作正常。问题是,如果在Site2上进行服务器更改(而不是javascript),则Site1无法获取它们。以下是我的代码:

Startup.cs

            app.Map("/signalr", map =>
            {
                map.UseCors(CorsOptions.AllowAll);
                var hubConfiguration = new HubConfiguration
                {
#if DEBUG
                    EnableDetailedErrors = true
#endif
                };
                map.RunSignalR(hubConfiguration);
            });

javascript代码:

$.connection.hub.url = "http://servername/Site1/signalr";
...$.connection.start etc

所有这些似乎都运行正常,但我无法在任何地方找到的是如何将C#代码中的设置从Site2推送到Site1。

随机c#代码:

var hub = GlobalHost.ConnectionManager.GetHubContext<myHub>();

这个globalhost.connectionmanager.gethubcontext始终指向自己。如何在最后一节中让Site2指向Site1?我已经尝试过编辑Startup.cs以使用MapSignalR(.. path,...),但路径不是采用绝对URL,而是必须以&#39; /&#39开头,所以它不会升级。

任何想法或我错过了什么基本的东西?

1 个答案:

答案 0 :(得分:0)

显然我正在寻找的是背板。 https://docs.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-in-signalr。超级易于设置,并立即修复我的问题(不需要任何上面的任何javascript更改)。