- TFS 2013
- 视窗服务器 2012
- IIS 8.5
- 应用程序请求路由 (ARR)
我正在使用 ARR 作为反向代理,将对该服务器上 URL 的任何请求重新路由到我在该服务器上为 TFS 设置的 IP 地址。
一切都很好,除了在 Chrome 中(不要经常这么说)。
在浏览我的 TFS 安装的 Web 版本并访问“Team Room”时,我在 Chrome 控制台中收到 SignalR 错误:
403(禁止:SignalR 跨域已禁用。)
FF 和 IE 中的相同链接可以正常工作。此外,如果我直接通过 TFS IP 地址(绕过 ARR)访问 Team Room 链接,它工作正常。
我尝试了很多不同的方法来解决这个问题。
将此标头添加到 TFS 的 web.config
<add name="Access-Control-Allow-Origin" value="http://tfs.mydomain.com"/>
在 JavaScript 中设置 SignalR 连接的连接 URL 并使用 JSONP,如下所示:
$.connection.hub.url = "http://my.ip.address:8080/tfs/signalr";
options = ({jsonp: true})
$.connection.hub.start(options)
我什至尝试了另一种我在网上找到的方法,它禁用了 ARR 上的缓存。
那里的许多解决方案都说我应该在服务器上启用 SignalR 的跨域请求,但是由于这是用于 TFS 安装,所以我没有修改 TFS 二进制文件的自由(据我所知)而且我是'无法通过查看 SignalR API 找到在客户端上执行此操作的方法。
对于这个问题,我遇到的唯一其他答案是 Chrome 被窃听并且不使用它(这是不可取的)。
有人知道我如何使用 Chrome 访问 TFS 团队会议室功能吗?