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

edd*_*ddo 8 iis-7.5 server-sent-events signalr

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

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

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

当我尝试直接访问url时, '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":{}}
Run Code Online (Sandbox Code Playgroud)

所以我不确定为什么超时会达到要求.

edd*_*ddo 7

事实证明在我的情况下不需要特定的配置 - SignalR回退到longPolling取决于我的服务器明显落后于代理的事实.

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

感谢用户dfowler的抬头(更多信息)