我现在正在使用 SignalR 和 IIS/ASP.net 4 和朋友(MySQL 等)测试新的聊天
我可以将 SignalR 与两个客户端(IE9、Chrome)或仅一个客户端一起使用,并且它可以工作。在对代码进行一些操作(刷新、更改、刷新等)之后,我可以看到对服务器的请求被冻结了几分钟,如果我想工作,我需要重新启动 IIS。
我对 IIS 进程进行了转储,并看到十个打开的连接 poll.ashx/connect?transport=foreverFrame ....
打开了几分钟。(我使用 ashx 扩展不使用“runAllManagedModulesForAllRequests”,因为它会损害性能,它是无用的)
我试过GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(30)
了 GlobalHost.Configuration.KeepAlive = null
。同样的问题。我可以在转储请求中看到打开到 2 分钟或更长时间。
我知道 Windows 7 的 IIS 限制为十个正在运行的请求,所以我打开了 Fiddler 并中止了所有会话。IIS 在终止后仍然挂起。我试图关闭 Fiddler(然后 - TCP/HTTP 连接) - 仍然挂起。
我能做些什么来阻止“丢失”的连接?客户端(提琴手或浏览器)关闭了 TCP/HTTP 连接,并且在 IIS 中仍然存在。
我不使用集线器。
谢谢 !