2015-03-05 2 views
1

У нас есть делегирующий-обработчик, который перехватывает запросы с определенным префиксом URL-адреса, а затем перенаправляет их за межсетевой экран с подаваемым Идент печеньем прикрепленного ...SignalR не работает с DelegatingHandler

Это работает для нашего WebAPI слоя , но SingalR запускает запросы самостоятельно, пока пытается подключиться, что не соответствует шаблону ... Я не могу понять, как заставить его использовать правильный префикс URL.

Это URL, который генерируется из запроса поста, когда он пытается сделать длинный-опрос: https://localhost:44330/signalr/connect?transport=longPolling&

Смотрите, что он не поставил «/ qsixlsignalr» в URL, который мое делегирование обработчика будет искать.

var signalRBaseURL = "/qsixlsignalr" 

$(function() { 

     // http://stackoverflow.com/questions/15467373/signalr-1-0-1-cross-domain-request-cors-with-chrome 
     $.support.cors = false;   

     var connection = $.hubConnection(signalRBaseURL); 
     var myHub = connection.createHubProxy('xlHub'); 

     myHub.on('notify', function (message) { 

      alertsViewModel.refreshActiveCount(localStorage.getItem(PROJECT_ID)); 

      if (window.location.pathname == '/' || window.location.pathname == '') { 
       alertsViewModel.refresh(localStorage.getItem(PROJECT_ID)); 
      } 

      toastr.success(message); 

     });   

     connection.disconnected(function() { 
      setTimeout(function() { 
       connection.start(); 
      }, 3000); 
     }); 

     connection.logging = true; 
     connection.start();   

    }); 

ответ

0

Если я правильно помню, вы должны сказать SignalR явно, что вы не хотите использовать URL-Значение по умолчанию

var connection = $.hubConnection(signalRBaseURL, { useDefaultPath: false });