关于子域上的c#:SignalR协商404

SignalR Negotiate 404 on Subdomain

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

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

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

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

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

关于如何改变这一点的任何想法? 还是我应该只使用原始连接API。

另外,为什么它可以从控制台应用程序正常工作?

提前致谢。


您可以继续使用生成的中心文件。 在启动SignalR连接之前,您只需要修改hubConnection的URL(存储在$.connection.hub.url中)即可。

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