我疯狂地认为,如果我通过 HTTPS 发布了带有 websockets 的 IIS 8 Web 服务器,那么即使使用 TMG 也不会有问题。
但是,无论发布、过滤和请求设置如何,我都没有看到任何 websocket 连接升级请求在通过 TMG 时到达 Web 服务器。
使用 SignalR,我可以回退到相关浏览器支持的任何较低级别的传输。当然,每当我绕过 TMG 时,它都能很好地工作。
我是否需要找到另一个防火墙/过滤器来使其工作,或者有其他办法吗?
我甚至无法找到有关哪些产品支持 Web 套接字的信息,我只看到一个奇怪的引述,即不到 1% 的当前代理服务器不兼容,使用 HTTPS 应该可以缓解任何问题。每当我使用 Microsoft 产品在 Google 搜索中输入“websocket”时,结果都是乱码和/或恶意软件网站。
tl;dr:我知道 Windows Server 2012 仍然不是 RTM,但是有没有办法通过 TMG 2010 SP2 建立 IIS 8 websocket 连接?
答案1
这就是我最终让它发挥作用的方法:
- 不要使用网站发布规则,而应使用非 Web 服务器规则
- 使用默认 HTTPS 服务器协议定义
- 不要在协议中启用任何过滤器
- 在规则的 To 部分,让请求显示为来自原始客户端
- 另外,虽然不相关,但遗憾的是,请确保 Web 服务器是 SecureNAT 客户端(即,它的默认网关是所讨论的 TMG)
这有一些限制,但可以满足我的需要:发布利用 Web 套接字的 IIS 8 ASP.NET 4.5 站点。