2

我知道有很多关于 /signalr/hubs 文件夹的 404 错误的问题,我阅读了所有这些问题,但没有一个与我的问题有关。

因为通常我的代码在本地机器和测试服务器上运行;但相同的代码在生产服务器上不起作用。这会让我发疯,我试图回收应用程序池,重新启动 IIS 或 w3svc 服务但没有帮助。

我的网站是一个安全的网站,我认为这可能会导致问题,但我找不到任何关于使用 SSL 运行 SignalR 的信息。

我的项目是 ASP.Net Web Forms(网站)并在 Windows Server 版本 6.0(Build 6002,SP2)上的 IIS 7 上运行。应用程序池配置为使用 .Net Framework 版本 4.0.30319 运行

PS:我有另一个 https 站点,它运行 signalr 没有任何问题。所以我很困惑。

编辑:我在同一台服务器上创建了另一个网站,并从工作服务器复制了工作代码并尝试了;结果是一样的。关于服务器或 IIS 有一些东西(可能是配置)。

解决方案: 这个解决方案也解决了我的问题。实际上我已经尝试过了,但我得到了 500 Internal Server Error 并放弃了。不管这是什么解决方案,所以我想改变我的问题,这段代码的目的是什么?为什么我的站点在不进行此修改的情况下可以在另一台服务器上运行?

4

2 回答 2

2

确保您托管站点的位置是信号器/集线器指向的位置。一个常见的问题是人们会像这样托管他们的网站:

www.abcd.com/mysite/index.html

现在在这个例子中 SignalR 托管在 www.abcd.com/mysite/signalr 但是很多人会将 /signalr/hubs 放在他们的 index.html 中,这是错误的。它应该是 ~/signalr/hubs,因为 hubs 文件不在 www.abcd.com/signalr/hubs 上,它在 www.abcd.com/mysite/signalr/hubs 上。

希望这可以帮助!

于 2013-10-08T06:59:44.480 回答
0

使用<script src="<%: ResolveUrl("~/signalr/hubs") %>"></script>,这将解决问题

于 2014-02-08T06:29:18.270 回答