如何为 SSE(服务器发送事件)和 SignalR 配置 IIS 7.5

2023-12-29

我已经测试了我的 Asp.NET MVC 应用程序来运行 SignalR,它可以正确处理text/event-stream具有 serverSentEvents 连接的 MIME,使用 Visual Studio 2012、IIS Express (Microsoft-IIS/8.0) 和 Chrome。

现在我正在部署到生产环境(IIS 7.5、.NET Framework 4.5、Windows Server 2008R2),我注意到 SignalR 总是回退到 LongPolling 传输,因为signalr/connect?transport=serverSentEvents etc超时。

有没有办法配置 Microsoft-IIS/7.5 以使 ServerSentEvents 工作?或者这只能在 8.0+ 上实现?

当我尝试直接访问网址时'http://my.webapp.com/MyHub/signalr/connect?transport=serverSentEvents&connectionId=624849a4-45c6-458b-b6d0-f7cb023ab226&connectionData=%5B%7B%22name%22%3A%22myHub%22%7D%5D&tid=2'我收到一个文件,其中包含看起来像 SSE 数据包的内容:

data: initialized

id: 14476
data: {"MessageId":"14476","Messages":[],"Disconnect":false,"TimedOut":false,"TransportData":{}}

所以我不确定为什么超时会满足请求。


事实证明无具体配置在我的情况下是必需的 - SignalR 回落到 longPolling 取决于我的服务器显然位于代理后面的事实。

为了测试这一点,我建议尝试使用 localhost 作为网址连接到服务器上的集线器服务器 - 在我的情况下,传输正确设置为 serverSentEvents (使用 Chrome 时)或foreverFrame (使用 IE 时)

感谢用户 dfowler 的提醒(更多here https://github.com/SignalR/SignalR/issues/625)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 SSE(服务器发送事件)和 SignalR 配置 IIS 7.5 的相关文章

随机推荐