У меня есть решение, в котором я использую SignalR. В одном из проектов есть концентратор и SignalR.Client в других, которые подключаются к этому концентратору. Это решение размещено на двух серверах, и у меня есть странная проблема. На одном сервере все работает нормально, но в другом случае я получаю ошибку 404, которая не найдена, когда я пытаюсь установить соединение с SignalR.Client.SignalR .Net Клиент не может установить соединение (404 не найдено)
концентратор Код:
public class GlobalHub : Hub
{
public void Hello()
{
Clients.All.hello();
}
public void Notify(string user,NotificationViewModel model)
{
Clients.Group(user).notify(model);
}
public override System.Threading.Tasks.Task OnConnected()
{
string name = Env.UserId().ToString();
Groups.Add(Context.ConnectionId, name);
return base.OnConnected();
}
}
Global.asax Карта Hub:
var hubConfiguration = new HubConfiguration
{
EnableDetailedErrors = true,
EnableJavaScriptProxies = true
};
RouteTable.Routes.MapHubs("/signalr",hubConfiguration);
попытка соединения:
string portal = CommonHelper.GetPortalUrl("user");
if(portal.Contains(":50150"))
{
portal = portal.Replace(":50150", "");
}
var connection = new HubConnection(portal+"signalr",false);
IHubProxy myHub = connection.CreateHubProxy("GlobalHub");
connection.Start().Wait();
myHub.Invoke("Notify", userID.ToString(), result2);
Я уверен, что мое соединение URL правильно, я проверил его 50 раз.
Ошибка происходит на этой линии:
onnection.Start().Wait();
Благодарности
Просто дикое предположение: вам не нужна косая черта: 'new HubConnection (portal +"/signalr ", false);' – DDan