2014-11-20 1 views
1

Я не могу вызвать метод сервера из контроллера концентратора. я в настоящее время получаю эту ошибку из-за атрибута авторизовать от контроллера:ошибка при вызове метода signalR server от метода контроллера

'AuthorizeAttribute' is an ambiguous reference between 'System.Web.Mvc.AuthorizeAttribute' and 'Microsoft.AspNet.SignalR.AuthorizeAttribute' 

любую идею, почему это происходит и что это правильный способ вызова методов signalR от действия контроллера ??

вот мой набор до

[Authorize] 
public class UserController : BaseController 
{ 

public ActionResult doSomething() 
    { 
     var hubContext = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 
    hubContext.Clients.All.BroadcastLogin(myusernm); 
     return View(); 
    } 
} 
+2

Это ошибка компиляции? Похоже, вам просто нужно указать полное пространство имен 'System.Web.Mvc.AuthorizeAttribute', а не просто' Authorize' или использовать [using alias] (http://msdn.microsoft.com/en-us/library/sf0df423 .aspx) –

+0

Это происходит только в том случае, когда [Авторизация] находится в верхней части контроллера. –

+0

Да, но если у вас есть 'using System.Web.Mvc;' и 'using Microsoft.AspNet.SignalR;' в верхней части вашего файла, то он не будет знать, какой из них использовать. Измените [Авторизовать] на [System.Web.Mvc.AuthorizeAttribute] и посмотрите, работает ли это. –

ответ

2

Если у вас есть using System.Web.Mvc; и using Microsoft.AspNet.SignalR; в верхней части файла, то он не будет знать, какие AuthorizeAttribute использовать.

Изменить [Authorize] на [System.Web.Mvc.AuthorizeAttribute] или использовать using alias directive.