首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SignalR .Net客户端无法建立连接(未找到)

SignalR .Net客户端无法建立连接(未找到)
EN

Stack Overflow用户
提问于 2015-07-27 17:03:34
回答 2查看 1.6K关注 0票数 1

我有一个使用SignalR的解决方案。在其中一个项目中有一个集线器,在连接到该集线器的其他项目中有一个SignalR.Client。这个解决方案托管在两个服务器上,我有一个奇怪的问题。在一台服务器中,一切正常工作,但在另一台服务器中,当我试图从SignalR.Client建立连接时,我得到了一个404未找到的错误。

中心代码:

代码语言:javascript
复制
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中心地图:

代码语言:javascript
复制
 var hubConfiguration = new HubConfiguration
        {
            EnableDetailedErrors = true,
            EnableJavaScriptProxies = true
        };
        RouteTable.Routes.MapHubs("/signalr",hubConfiguration);

连接尝试:

代码语言:javascript
复制
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);

我很确定我的连接网址是正确的,我检查了50次。

此行发生错误:

代码语言:javascript
复制
onnection.Start().Wait();

错误来源:

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-28 16:30:41

谢谢我解决了这个问题。结果是服务器出了问题。服务器本身无法识别该url (在url上抛出404 )。那个问题解决后,SignalR开始工作。

票数 0
EN

Stack Overflow用户

发布于 2015-07-28 07:00:35

问题可能是,当在两个服务器上承载SignalR项目时,连接到一个服务器的客户端只能连接到连接到同一服务器的其他客户端。这是因为SignalR不会通过所有服务器自动广播消息。

http://www.asp.net/signalr/overview/performance/scaleout-in-signalr

试着看看这里,我希望这对你有帮助。建议的解决方案之一是使用Redis /Sub (http://redis.io/topics/pubsub)解决方案或Azure服务总线(Azure,http://azure.microsoft.com/en-us/services/service-bus/)--两者都用作背板(当服务器接收到消息时,将消息广播给所有消息,并且需要消息的服务器可以使用消息)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31659089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档