2017-02-14 5 views
0

У меня есть приложение, в котором у меня есть 2 экземпляра его на одном сервере IIS.signalR change default site in startup

  • /site1
  • /site2

же исходный код в обоих, просто разные настройки. У меня есть код signalR на обоих сайтах, но я бы хотел, чтобы Site2 использовал сервер signalR с сайта1.

У меня это работает, так что если изменения внесены на Site1, Site2 знает, что нужно обновить, и это работает нормально. ПРОБЛЕМА заключается в том, что если серверные изменения (а не javascript) сделаны на Site2, 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# с сайта2 на Site1.

случайный C# код:

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

это globalhost.connectionmanager.gethubcontext всегда указывает на себя. Как я могу заставить Site2 указывать на Site1 в последнем разделе? Я попытался изучить редактирование Startup.cs для использования MapSignalR (.. path, ...), но путь не принимает абсолютные URL-адреса, он должен начинаться с '/', поэтому он не будет подниматься уровень.

Любые идеи или я что-то пропустил что-то основное?

ответ