SignalR在子域上协商404

时间:2014-11-12 05:04:03

标签: c# asp.net-mvc signalr

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

的文件夹

我还使用SignalR Client制作了一个控制台程序,该程序连接并且工作得非常好,非常奇怪。

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

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

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

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

另外为什么它在控制台应用程序中正常工作?

提前致谢。

1 个答案:

答案 0 :(得分:4)

您可以继续使用生成的集线器文件。您只需在开始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()...