2016-01-13 3 views
0

Я пытаюсь добавить SignalR в мое приложение Angular MVC, используя в качестве отправной точки статью this. У меня это все настройки, но когда следующий URL получает удар при загрузке страницы, он возвращает 404:Получение 404 для сервера SignalR в приложении Angular MVC

https://localhost/APPNAME/signalr/negotiate?clientProtocol=1.5&connectionData=%5B%5D&_=1452720381700 

Вот мои файлы:

App_Start/Starup.cs:

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

Hub:

public class CommissionsHub : Hub 
{ 
    private static IHubContext hub = GlobalHost.ConnectionManager.GetHubContext<CommissionsHub>(); 

    public static void UpdatePendingPayment(PendingPaymentViewModel pendingPayment) 
    { 
     hub.Clients.All.onUpdatePendingPayment(pendingPayment); 
    } 
} 

Фабрика:

app.factory('signalRUrl', ['baseUrl', function (baseUrl) { 
    return baseUrl.substring(0, baseUrl.length - 1); 
}]); 

app.factory('hubProxy', ['$rootScope', 'signalRUrl', function ($rootScope, signalRUrl) { 

    function hubProxyFactory(hubName) { 
     var connection = $.hubConnection(signalRUrl); 
     var proxy = connection.createHubProxy(hubName); 

     connection.start().done(function() { }); 

     return { 
      on: function (eventName, callback) { 
       proxy.on(eventName, function (result) { 
        $rootScope.$apply(function() { 
         if (callback) { 
          callback(result); 
         } 
        }); 
       }); 
      }, 
      invoke: function (methodName, callback) { 
       proxy.invoke(methodName) 
       .done(function (result) { 
        $rootScope.$apply(function() { 
         if (callback) { 
          callback(result); 
         } 
        }); 
       }); 
      }, 
      connection: connection 
     }; 
    }; 

    return hubProxyFactory; 
}]); 

Контроллер:

angular.module('testApp').controller('testController', ['$scope', 'hubProxy', 
    function ($scope, hubProxy) { 

     var commissionsHub = hubProxy('commissionsHub'); 

     commissionsHub.on('onUpdatePendingPayment', function (data) { 
      console.log(data); 
     }); 
    }]); 

У меня есть пакет в моем BundleConfig что ссылающегося Jquery-2.1.4.js и jquery.signalR-2.2.0.js.

Что мне не хватает? Заранее спасибо.

ответ

0

Похоже, моя проблема в том, что был еще один класс запуска Owin (другой созданный разработчик), с которым я создал конфликт. Я добавил конфигурацию запуска SignalR в другой файл запуска Owin, и теперь URL-адрес signalr работает.

Смежные вопросы