繁体   English   中英

池上的ASP.NET Websocket行为回收

[英]ASP.NET Websocket behavior on Pool recycle

我目前正在评估使用asp.net websockets来连接数千个客户端,这些客户端几乎全天候都会与应用程序保持连接,除非服务器脱机进行修补等。一般来说,系统的期望是websockets不应该不必要地断开连接,客户端基本上保持连接并每隔几分钟ping一次服务器。

当我在研究新架构的asp.net websocket可行性时,我遇到了另一个stackoverflow帖子: 当有一个打开的ASP.NET 4.5 Websocket时,IIS应用程序池无法回收,这似乎暗示IIS不会回收池是一个活跃的websocket连接。 这是设计还是其他人遇到异常? 如果IIS确实在websocket连接处于活动状态时回收池,那么预期的行为是什么? Http.sys是否保持连接,回收池并恢复事务,就像没有发生任何事情一样(从客户的角度来看)? 我应该为websockets创建一个单独的应用程序池并禁用它上面的回收吗?

根据我的经验,旧工作进程上的WebSockets没有转换到新的工作进程。 我观察到旧的WebSockets被置于非Open状态,由你的代码检查并停止维护这些线程 - 我的应用程序通过WebSockets为客户端创建心跳,如果心跳失败,我需要尽快关闭(已经关闭)WebSocket上下文,以便旧的工作进程可以完全卸载并死掉。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM