0

Я работаю в сигнале г .. MVC и подключении через концентратор не создал свой хаб код являетсяNull ссылка исключение в чате хаба класса сигналу г

public class ChatHub : Hub 
{ 
    private readonly static ConnectionMapping<string> _connections = 
     new ConnectionMapping<string>(); 

    public void SendChatMessage(string who) 
    { 
     string name = Context.User.Identity.Name; 
     Clients.User(who).addChatMessage(); 
    } 

    public override Task OnConnected() 
    { 
     string name = Context.User.Identity.Name; 

     _connections.Add(name, Context.ConnectionId); 
     Debug.Write("Shubham Conected"); 
     return base.OnConnected(); 
    } 

    public override Task OnDisconnected(bool stopCalled) 
    { 
     string name = Context.User.Identity.Name; 

     _connections.Remove(name, Context.ConnectionId); 
     Debug.Write("Shubham now Disconnected"); 
     return base.OnDisconnected(stopCalled); 
    } 

    public override Task OnReconnected() 
    { 
     string name = Context.User.Identity.Name; 

     if (!_connections.GetConnections(name).Contains(Context.ConnectionId)) 
     { 
      _connections.Add(name, Context.ConnectionId); 
     } 
     Debug.Write("Shubham Reconnected"); 
     return base.OnReconnected(); 
    } 


    public void SendChatMessage(string who, string message) 
    { 
     string name = Context.User.Identity.Name; 
     Debug.Write("Shubham inside the send"); 
     Clients.Group(who).addChatMessage(name + ": " + message); 
    } 


} 

Когда я исполню ее в режиме отладки в визуальной студии 2013 год, он исключает исключение в

Я не знаю, как решить эту проблему. Когда я использую этот оператор в своем контроллере, этот код возвращает userId.

+0

Почти все случаи 'NullReferenceException' одинаковы. См. «[Что такое исключение NullReferenceException в .NET?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-in-net)» для некоторых советов. –

+0

Это специфично для signalr и не должно дублироваться. –

ответ

1

Пожалуйста, расскажите, какой режим аутентификации вы используете для этого, я имею в виду, что вы устанавливаете контекст программно или используете аутентификацию Windows через IIS.

Сначала проверьте, что в вашем MVC Application ваш шаг аутентификации должен быть до конфигурации SignalR

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