加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Pool回收的ASP.NET Websocket行为

发布时间:2020-12-15 20:56:55 所属栏目:百科 来源:网络整理
导读:我目前正在评估使用asp.net websockets来连接数千个客户端,这些客户端几乎全天候都会与应用程序保持连接,除非服务器脱机进行修补等.一般来说,系统的期望是websockets不应该不必要地断开连接,客户端基本上保持连接并每隔几分钟ping一次服务器. 当我在研究新架
我目前正在评估使用asp.net websockets来连接数千个客户端,这些客户端几乎全天候都会与应用程序保持连接,除非服务器脱机进行修补等.一般来说,系统的期望是websockets不应该不必要地断开连接,客户端基本上保持连接并每隔几分钟ping一次服务器.

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读