【问题标题】:SignalR Negotiate 404 on SubdomainSignalR 在子域上协商 404
【发布时间】:2017-03-03 02:22:42
【问题描述】:

我创建了一个小型 MVC SignalR 应用程序,但在子域下的服务器上运行时遇到问题: http://chat.mydomain.com,映射到名为 /chat 的文件夹。

我还使用 SignalR Client 制作了一个控制台程序,它可以完美地连接和工作,这很奇怪。

来自 MVC 应用程序的错误是来自 http://chat.mydomain.com/chat/signalr/negotiate?clientProtocol=[...] 的 404。我可以看到为什么会发生这种情况,但不知道如何解决。在我生成的 hubs 文件中,行

signalR.hub = $.hubConnection("/chat/signalr", { useDefaultPath: false });

在技术上是正确的,但应该是$.hubConnection("/signalr", { useDefaultPath: false });

关于如何改变它的任何想法?或者我应该只使用原始连接 API。

还有为什么它可以从控制台应用程序正常工作?

提前致谢。

【问题讨论】:

    标签: c# asp.net-mvc signalr


    【解决方案1】:

    您可以继续使用生成的 hubs 文件。您只需在开始 SignalR 连接之前修改 hubConnection 的 url(存储在 $.connection.hub.url)。

    // This is initially set to "/chat/signalr" as specified in the hubs file
    $.connection.hub.url = "/signalr";
    $.connection.hub.start()...
    

    【讨论】:

    • 为您的回答干杯,在决定启用 jsonp 并使用 '//mydomain.com/chat/signalr' 作为 url 和有效!这样做感觉有点hacky,但至少它有效!
    猜你喜欢
    • 2013-11-23
    • 1970-01-01
    • 2016-09-25
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多